Index: head/MOVED =================================================================== --- head/MOVED (revision 475253) +++ head/MOVED (revision 475254) @@ -1,10356 +1,10359 @@ # # MOVED -- A list of (recently) moved or removed ports # # $FreeBSD$ # # Each entry consists of a single line containing the following four # fields in the order named, separated with the pipe (`|') character: # # Port: A port that was moved (category/portname) # Moved to: Where the port was moved to, or which port users can # and should migrate to (category/portname); no entry # indicates that the port was deleted # Date: When the moving or the removal was done (YYYY-MM-DD, # in PST/PDT) # Why: The reason why the port was moved or removed # # Keep this list sorted in the chronological order. New entries must be # added at the tail. Reason for (re)move should start with a capital letter # (unless it's a file or other special name) and not end with the dot. # # If previously removed port gets restored, make sure to delete the relevant # line. If a port is copied to a new location and the old location is kept # (e.g. upgraded to a later version), don't record it here. # # This file can be linted with Tools/scripts/MOVEDlint.awk # # Port|Moved to|Date|Why audio/polypaudio|audio/pulseaudio|2008-01-01|Project renamed audio/akode-plugins-polypaudio||2008-01-01|Polypaudio is obsolete in favor of Pulseaudio audio/teknap|net-p2p/teknap|2008-01-09|Moved to net-p2p category net/freeradius-devel|net/freeradius2|2008-01-18|Development version no longer necessary devel/p5-gearmand|devel/p5-Gearman-Server|2008-01-20|Replaced by p5-Gearman-Server databases/mysqltoolkit|databases/maatkit|2008-01-21|Project was renamed games/sturmbahnfahrer|games/stormbaancoureur|2008-01-27|Project was renamed net/cactid|net-mgmt/cacti-spine|2008-01-27|Project was renamed devel/wxGlade-devel||2008-02-11|Has expired: has been the same version as wxGlade for a long time; use it instead sysutils/sge|sysutils/sge60|2008-02-12|Splitting into 6.0 and 6.1 versions mail/linux-netscape-messenger|mail/thunderbird|2008-02-13|Abandoned by AOL www/linux-netscape-navigator|www/firefox|2008-02-13|Abandoned by AOL audio/daapd||2008-02-26|Has expired: Development stalled, outdated. Does not support newer versions of DAAP protocol audio/daaplib||2008-02-26|Has expired: Development stalled for years, outdated. Does not support newer versions of DAAP protocol www/libhttpd-persistent||2008-02-27|Has expired: Development stalled for years, outdated www/vtiger4||2008-02-27|Has expired: This version is no longer supported by the developers www/xpi-surfkeys||2008-02-27|Has expired: Development has been ceased sysutils/eventwatcher||2008-02-27|Has expired: no active development sysutils/p5-UPS-Nut||2008-02-27|Has expired: Version branch long since retired net-mgmt/netsaint||2008-02-27|Has expired: Now developed as Nagios, see net-mgmt/nagios port net-mgmt/netsaint-plugins||2008-02-27|Has expired: Now developed as Nagios, see net-mgmt/nagios port games/ggo||2008-02-27|Has expired: developer's focus have moved elsewhere mail/claws-mail-etpan_privacy||2008-02-27|Has expired: no longer supported by developers x11-themes/indubstrial||2008-02-28|Has expired: yes x11-themes/gtk-smooth-engine||2008-02-28|Has expired: Redundant port (now included in gtk-engines), no release since 2005 security/amavis-perl||2008-02-28|Has expired: depends on misc/compat3x, which has security problems sysutils/cdbakeoven||2008-02-28|Has expired: Abandonware net/gnu-finger||2008-02-28|Has expired: no active development and known security vulnerabilities misc/seizedesktop||2008-02-28|Has expired: development stalled for years, outdated, unmaintained net-im/wildfire||2008-02-28|Has expired: Use net-im/openfire instead of this port www/gekko||2008-02-28|Has expired: This port is not being developed anymore. This was replaced by textmotion (http://code.google.com/p/textmotion/) www/gekko-modules||2008-02-28|Has expired: This port is not being developed anymore. This was replaced by textmotion (http://code.google.com/p/textmotion/) java/linux-blackdown-jre11||2008-02-28|Has expired: Obsolete version; support for Java 1.1 is to be removed from the ports tree french/pluxml||2008-02-28|Has expired: no active development and known security vulnerabilities, see http://www.securityfocus.com/bid/24607/info for details french/pluxml-theme-bridge||2008-02-28|Has expired: pluxml is marked as deprecated french/pluxml-theme-snowxml||2008-02-28|Has expired: pluxml is marked as deprecated databases/pgbash||2008-02-28|Has expired: Last release in 2003, relies on outdated PostgreSQL 7.3 and bash 2.05a audio/nogger||2008-02-28|Has expired: just makes a humming noise x11-wm/wmDeskGuide||2008-02-28|Has expired: Version branch long since retired ftp/axelq||2008-02-28|Has expired: Unmaintained, website disappeared lang/fpc-devel||2008-02-28|Has expired: now lags behind version in lang/fpc; use that instead devel/php-dbg||2008-02-28|Has expired: does not work with PHP 5 and does not compile on GCC 4.2 graphics/jgv||2008-02-28|Has expired: development stalled for years, outdated, unmaintained editors/muggy||2008-02-28|Has expired: development stalled for years, unmaintained x11-fm/binder||2008-02-28|Has expired: development stalled for years, outdated, unmaintained x11-toolkits/guile-gnome||2008-03-02|Software is obsolete security/openssh||2008-03-02|Has expired: Outdated and has security issues www/p5-FastCGI-ProcManager||2008-03-07|Duplicate of www/p5-FCGI-ProcManager x11/compositeext|x11/compositeproto|2008-03-07|Port has been outdated since X.Org 7.2 merge x11/damageext|x11/damageproto|2008-03-07|Port has been outdated since X.Org 7.2 merge x11/fixesext|x11/fixesproto|2008-03-07|Port has been outdated since X.Org 7.2 merge x11/panoramixext||2008-03-07|Port has been outdated since X.Org 7.2 merge x11/randrext|x11/randrproto|2008-03-07|Port has been outdated since X.Org 7.2 merge x11/renderext|x11/renderproto|2008-03-07|Port has been outdated since X.Org 7.2 merge x11/resourceext|x11/resourceproto|2008-03-07|Port has been outdated since X.Org 7.2 merge x11/xextensions||2008-03-07|Port has been outdated since X.Org 7.2 merge x11/printext|x11/printproto|2008-03-07|Port has been outdated since X.Org 7.2 merge x11/libXxf86||2008-03-07|Port has been outdated since X.Org 7.2 merge x11/xf86ext||2008-03-07|Port has been outdated since X.Org 7.2 merge devel/imake-4||2008-03-07|XFree86-4 is no longer supported on FreeBSD graphics/xfree86-dri||2008-03-07|XFree86-4 is no longer supported on FreeBSD x11-fonts/XFree86-4-font100dpi||2008-03-07|XFree86-4 is no longer supported on FreeBSD x11-fonts/XFree86-4-font75dpi||2008-03-07|XFree86-4 is no longer supported on FreeBSD x11-fonts/XFree86-4-fontCyrillic||2008-03-07|XFree86-4 is no longer supported on FreeBSD x11-fonts/XFree86-4-fontDefaultBitmaps||2008-03-07|XFree86-4 is no longer supported on FreeBSD x11-fonts/XFree86-4-fontEncodings||2008-03-07|XFree86-4 is no longer supported on FreeBSD x11-fonts/XFree86-4-fontScalable||2008-03-07|XFree86-4 is no longer supported on FreeBSD x11-servers/XFree86-4-FontServer||2008-03-07|XFree86-4 is no longer supported on FreeBSD x11-servers/XFree86-4-NestServer||2008-03-07|XFree86-4 is no longer supported on FreeBSD x11-servers/XFree86-4-PrintServer||2008-03-07|XFree86-4 is no longer supported on FreeBSD x11-servers/XFree86-4-Server||2008-03-07|XFree86-4 is no longer supported on FreeBSD x11-servers/XFree86-4-VirtualFramebufferServer||2008-03-07|XFree86-4 is no longer supported on FreeBSD x11/XFree86-4||2008-03-07|XFree86-4 is no longer supported on FreeBSD x11/XFree86-4-clients||2008-03-07|XFree86-4 is no longer supported on FreeBSD x11/XFree86-4-documents||2008-03-07|XFree86-4 is no longer supported on FreeBSD x11/XFree86-4-libraries||2008-03-07|XFree86-4 is no longer supported on FreeBSD x11/XFree86-4-manuals||2008-03-07|XFree86-4 is no longer supported on FreeBSD x11/ecore|devel/ecore|2008-03-12|Change category www/scout||2008-03-12|Has expired: Abandonware, website disappeared security/nmapfe|security/zenmap|2008-03-14|Project renamed x11/hs-x11-extras-ghc||2008-03-14|Has expired: Use x11/hs-x11-ghc instead www/mod_dosevasise20||2008-03-14|Has expired: Use www/mod_evasive20 instead devel/hc12mem|devel/hcs12mem|2008-03-17|Project renamed mail/claws-mail-maildir||2008-03-21|Has expired: no longer supported by developers x11/e17-module-devian||2008-03-21|Has expired: abandoned by developer x11/e17-module-engage||2008-03-21|Has expired: abandoned by developer x11/e17-module-eveil||2008-03-21|Has expired: abandoned by developer sysutils/hal-device-manager|sysutils/gnome-device-manager|2008-03-23|hal-device-manager has been retired security/gnome-keyring-manager|security/seahorse|2008-03-23|Functionality has been rolled into seahorse ports-mgmt/pkg_install-devel|ports-mgmt/pkg_install|2008-03-31|Port has been unmaintained for a few years x11-toolkits/qwt|x11-toolkits/qwt4|2008-04-02|Renamed for better naming x11-toolkits/qwt-devel|x11-toolkits/qwt5|2008-04-02|Renamed for better naming audio/csound-manual||2008-04-04|Merged with main port security/acid||2008-04-04|Has expired: development has ceased, use security/base archivers/deepforest||2008-04-09|Has expired: development stalled for years, outdated, unmaintained graphics/libimg-tkstep80||2008-04-09|Has expired: tkstep80 scheduled for expiration x11-toolkits/tkstep80||2008-04-09|Has expired: development stalled for years, outdated, unmaintained devel/p5-Tie-Watch|x11-toolkits/p5-Tk|2008-04-14|Bundled with p5-Tk games/teewars|games/teeworlds|2008-04-17|Project renamed multimedia/exportvideo||2008-04-21|Add-on for soon to be removed nuppelvideo port multimedia/nuppelvideo||2008-04-21|Unmaintained upstream for years. The nuppelvideo format is now supported by mencoder graphics/ascii0|graphics/asciio|2008-04-22|Renamed by delete+add misc/kde3-i18n-id||2008-04-25|Has expired: Distfile no longer available, outdated net/dhcp-agent||2008-04-25|Has expired: Dhcp-agent has not been updated since 2003, it does not build with guile-1.8, and it is unmaintained net/ocaml-netclient||2008-04-25|Has expired: is part of ocaml-net graphics/entice||2008-04-25|Has expired: Broken and unmaintained games/glpuzzle|games/jigzo|2008-04-28|Project renamed ftp/greed||2008-04-29|Has expired: No longer maintained x11-themes/gnome-industrial-theme||2008-04-29|Has expired: gnome-themes-extras no longer has industrial engine www/firefox15||2008-04-30|Has expired: Obsolete version, use Firefox 2.0 or greater instead www/phpadsnew||2008-04-30|Has expired: replaced by www/openx x11-wm/yawm||2008-04-30|Has expired: project no longer exists x11-wm/uwm||2008-04-30|Has expired: Version branch long since retired arabic/katoob||2008-04-30|Removed on maintainers request due to inactivity of project security/drupal4-ldap_integration||2008-04-30|Removed due to being broken and clearly not used ports-mgmt/instant-tinderbox||2008-05-07|No longer functional in the current infrastructure devel/swigruby||2008-05-11|Has expired: use devel/swig13 instead, last release was 8 years ago japanese/epson-ttfonts||2008-05-12|Removed because of extremely restrictive license x11-servers/xorg-printserver||2008-05-15|Has expired, software is obsolete www/mod_evasive20|www/mod_evasive|2008-05-17|No reason to have the 20 in the name, so remove it multimedia/smplayer-qt4||2008-05-17|Functionality is now included in smplayer devel/php-Net_Gearman|devel/pear-Net_Gearman|2008-05-19|Now it is a pear module devel/swig11||2008-05-21|Has expired: use devel/swig13 instead, last release of 1.1 was 8 years ago japanese/truetypefonts||2008-05-25|Removed due to copyright problem japanese/kochi-cidfonts||2008-05-25|Removed due to copyright problem japanese/latex-japanese|japanese/platex-japanese|2008-05-26|Works only with platex ports-mgmt/newportsversioncheck||2008-05-27|Obsoleted by portscout net-p2p/dclibc||2008-05-30|Has expired: Abandoned, not used, website disappeared multimedia/xfce4-xmms-controller-plugin||2008-05-30|Has expired: Project is dead www/pear-HTTP_Session||2008-05-30|Has expired: Use www/pear-HTTP_Session2 instead security/bioapitool||2008-05-30|Has expired: All functionality of these tools has been merged with pam_bsdbioapi japanese/motoya-ttfonts||2008-05-31|Removed because of extremely restrictive license devel/libffi-devel||2008-06-02|Has expired: Use devel/libffi instead www/mod_auth_pwcheck||2008-06-17|Depends on expired port, website disappeared security/cyrus-sasl||2008-06-17|Has expired: Unsupported, please move to cyrus-sasl2 converters/compface|mail/faces|2008-06-17|Removed in favor to mail/faces security/p5-openxpki-client-cli||2008-06-18|Has expired: no longer supported. Use p5-openxpki-client-html-mason instead audio/mbrola||2008-06-18|Has expired: relies on forbidden port misc/compat3x; last release 2000 emulators/linux-winetools||2008-06-18|Has expired: very old, discontinued, and replaced by emulators/wine-doors games/linux-x-plane||2008-06-18|Relies on expired, unfetchable installer port games/linux-x-plane-net-installer||2008-06-18|Has expired: unfetchable japanese/vje30||2008-06-18|Has expired: depends on forbidden port misc/compat3x math/umfpack||2008-06-18|Has expired: Outdated subset of math/suitesparse net/apache-soap||2008-06-18|Has expired: Development has been ceased, superseded by www/axis net/archie||2008-06-18|Has expired: No servers active anymore net/xarchie||2008-06-18|Has expired: No servers active anymore net/p5-Net-Z3950||2008-06-18|Has expired: does not compile with yaz 3.x, deprecated in favor of ZOOM-Perl (net/p5-Net-Z3950-ZOOM) net/vls||2008-06-18|Has expired: Does not build with current libdvbpsi. Development has been moved to multimedia/vlc net-mgmt/nsc||2008-06-18|Has expired: Project abandoned security/amavisd||2008-06-18|Has expired: depends on misc/compat3x, which has security problems; old version games/linux-goodway||2008-06-18|A tool for a port that was removed graphics/gtkcairo||2008-06-19|Unused, unfetchable, obsolete net/openospfd-devel||2008-06-19|Has expired: no longer maintained x11-servers/xorg-server-snap|x11-servers/xorg-server|2008-06-19|Has expired: no longer maintained archivers/dynamite|archivers/libdynamite|2008-06-22|Moved to archivers/libdynamite archivers/orange|archivers/liborange|2008-06-22|Moved to archivers/liborange security/barnyard-sguil6|security/barnyard-sguil|2008-06-22|Moved to security/barnyard-sguil java/bsh|lang/bsh|2008-06-22|Moved to lang/bsh www/mod_security2|www/mod_security21|2008-06-22|Moved to www/mod_security2 devel/dumb|audio/dumb|2008-06-23|Moved to a better category security/ca-roots||2008-06-29|No longer supported by FreeBSD Security Officer devel/subversion-perl|devel/p5-subversion|2008-06-30|Rename to reflect official Perl modules naming scheme devel/subversion-python|devel/py-subversion|2008-06-30|Rename to reflect official Python modules naming scheme devel/subversion-ruby|devel/ruby-subversion|2008-06-30|Rename to reflect official Ruby modules naming scheme misc/goblin|math/goblin|2008-06-30|Moved to a better category editors/openoffice.org-1.0||2008-07-02|Removed editors/openoffice.org-1.1||2008-07-02|Removed editors/openoffice.org-1.1-devel||2008-07-02|Removed deskutils/gdeskcal||2008-07-03|Disappeared from master site deskutils/gdeskcal-skins||2008-07-03|Disappeared from master site deskutils/gnome-menu-editor||2008-07-03|Disappeared from master site and take over by alacarte textproc/dictum-emacs22||2008-07-05|Assimilated into textproc/dictum sysutils/gnu-unifont|x11-fonts/gnu-unifont|2008-07-05|Category change chinese/links||2008-07-05|Has been ignored for 15 months net-im/psi-gentoo||2008-07-11|Removed because no longer supported lang/yarv|lang/ruby19|2008-07-11|Officially released as Ruby 1.9 japanese/samba|japanese/samba3|2008-07-21|Superseded by japanese/samba3 net/silky||2008-07-21|Broken with newer silc-toolkit version japanese/kterm16c|japanese/kterm|2008-07-24|Deprecated in favor of japanese/kterm lang/gambc|lang/gambit-c|2008-07-24|Port was renamed devel/legoctl|devel/roboctl|2008-07-26|Port was renamed games/ssamtse|games/linux-ssamtse|2008-07-26|Upgraded to Linux version of the game palm/synce-rra|palm/synce-librra|2008-07-27|Port was renamed palm/synce-dccm|palm/synce-vdccm|2008-07-27|Port was renamed arabic/php_doc||2008-08-04|Manual in this language was removed chinese/php_doc-hk||2008-08-04|Manual in this language was removed chinese/php_doc-tw||2008-08-04|Manual in this language was removed chinese/php_doc-zh||2008-08-04|Manual in this language was removed hungarian/php_doc||2008-08-04|Manual in this language was removed mbone/rtpmon||2008-08-16|Abandoned upstream and needs gcc32 which is going to be removed games/ssc||2008-08-16|Abandoned upstream and needs gcc32 which is going to be removed mail/mutt-ng||2008-08-18|Has expired: Abandoned by upstream maintainers; use mail/mutt-devel x11-wm/heliodor||2008-08-18|No longer supported -- use compiz x11-wm/beryl||2008-08-18|Has expired: No longer supported -- use compiz x11-wm/beryl-core||2008-08-18|Has expired: No longer supported -- use compiz x11-wm/beryl-manager||2008-08-18|Has expired: No longer supported -- use compiz x11-wm/beryl-plugins||2008-08-18|Has expired: No longer supported -- use compiz x11-wm/beryl-plugins-unsupported||2008-08-18|Has expired: No longer supported -- use compiz x11-wm/beryl-settings||2008-08-18|Has expired: No longer supported -- use compiz x11-wm/beryl-settings-bindings||2008-08-18|Has expired: No longer supported -- use compiz japanese/lyx|print/lyx|2008-08-18|No longer maintained and print/lyx now supports Unicode japanese/lyx-doc||2008-08-18|Obsolete games/blobandconquer||2008-08-20|Removed due to copyright problems games/randomshooter||2008-08-20|Removed due to copyright problems devel/autoconf261|devel/autoconf262|2008-08-20|Migration to autoconf-2.62 x11-themes/enlightenment-theme-BlueSteel||2008-08-20|Deprecated by x11-themes/e16-themes x11-themes/enlightenment-theme-BrushedMetal-Tigert||2008-08-20|Deprecated by x11-themes/e16-themes x11-themes/enlightenment-theme-Ganymede||2008-08-20|Deprecated by x11-themes/e16-themes x11-themes/enlightenment-theme-ShinyMetal||2008-08-20|Deprecated by x11-themes/e16-themes www/mediawiki17||2008-08-22|Expired, use www/mediawiki instead www/mediawiki18||2008-08-22|Expired, use www/mediawiki instead x11-wm/9wm||2008-08-22|Has expired: Project is dead, last release from 2002 x11-wm/gwm||2008-08-22|Has expired: Project is dead x11-wm/mlvwm||2008-08-22|Has expired: Project is dead x11-wm/novawm||2008-08-22|Has expired: Project is dead x11-wm/orion||2008-08-22|Has expired: Version branch long since retired x11-wm/ude||2008-08-22|Has expired: Remove dead project lang/gcc32|lang/gcc42|2008-08-23|Abandoned upstream more than five years ago; superseded by lang/gcc42 and later irc/iip||2008-08-24|Abandonware, long since deprecated www/mediawiki19||2008-08-26|Expired, use www/mediawiki instead www/mediawiki110||2008-08-26|Expired, use www/mediawiki instead www/mediawiki111||2008-08-26|Expired, use www/mediawiki instead graphics/openproducer||2008-08-27|Now included in graphics/osg devel/openthreads||2008-08-27|Now included in graphics/osg www/cherokee-devel||2008-08-27|Removed, use www/cherokee instead irc/tirc||2008-08-28|Has expired: Project is dead x11-toolkits/gtkdatabox2||2008-08-29|Removed, use x11-toolkits/gtkdatabox instead chinese/BBMan||2008-08-30|Removed, abandoned by upstream maintainer games/q3base||2008-09-01|Project gone, website defaced editors/ooo-build||2008-09-01|Has expired: Has been broken for more than 6 months mail/pine4|mail/alpine|2008-09-01|No further development for pine, alpine has more features and is config-compatible editors/pico|editors/pico-alpine|2008-09-01|No further development for pine, alpine has more features and is config-compatible print/ghostscript-gnu|print/ghostscript7|2008-09-05|Renamed for better naming print/ghostscript-gnu-nox11|print/ghostscript7-nox11|2008-09-05|Renamed for better naming print/ghostscript-gnu-commfont|print/ghostscript7-commfont|2008-09-05|Renamed for better naming japanese/ghostscript-gnu-jpnfont|print/ghostscript7-jpnfont|2008-09-05|Renamed for better naming korean/ghostscript-gnu-korfont|print/ghostscript7-korfont|2008-09-05|Renamed for better naming print/ghostscript-gpl-nox11|print/ghostscript8-nox11|2008-09-05|Renamed for better naming chinese/acroread-zh_CN|chinese/acroread8-zh_CN|2008-09-06|Removed because of security vulnerability chinese/acroread-zh_TW|chinese/acroread8-zh_TW|2008-09-06|Removed because of security vulnerability french/acroread|french/acroread8|2008-09-06|Removed because of security vulnerability german/acroread|german/acroread8|2008-09-06|Removed because of security vulnerability japanese/acroread|japanese/acroread8|2008-09-06|Removed because of security vulnerability korean/acroread|korean/acroread8|2008-09-06|Removed because of security vulnerability portuguese/acroread|portuguese/acroread8|2008-09-06|Removed because of security vulnerability print/acroread7|print/acroread8|2008-09-06|Removed because of security vulnerability print/dk-acroread|print/dk-acroread8|2008-09-06|Removed because of security vulnerability print/es-acroread|print/es-acroread8|2008-09-06|Removed because of security vulnerability print/fi-acroread|print/fi-acroread8|2008-09-06|Removed because of security vulnerability print/it-acroread|print/it-acroread8|2008-09-06|Removed because of security vulnerability print/nl-acroread|print/nl-acroread8|2008-09-06|Removed because of security vulnerability print/no-acroread|print/no-acroread8|2008-09-06|Removed because of security vulnerability print/sv-acroread|print/sv-acroread8|2008-09-06|Removed because of security vulnerability net/py-zsi-devel||2008-09-07|Removed in favor of py-zsi audio/squeezecenter-transitionupdater||2008-09-07|Plugin integrated in to SqueezeCenter 7.1 japanese/xjman||2008-10-05|No longer maintained japanese/xjman-3||2008-10-05|No longer maintained net/isc-dhcp3-server|net/isc-dhcp30-server|2008-10-13|Swap to multiple versions net/isc-dhcp3-relay|net/isc-dhcp30-relay|2008-10-13|Swap to multiple versions net/isc-dhcp3-client|net/isc-dhcp30-client|2008-10-13|Swap to multiple versions japanese/sj3|japanese/sj3-server|2008-10-26|Renamed for -server/-lib separation japanese/Canna|japanese/canna-server|2008-10-26|Renamed for -server/-lib separation japanese/kinput2-canna|japanese/kinput2|2008-10-26|Integrated into japanese/kinput2 japanese/kinput2-canna+freewnn|japanese/kinput2|2008-10-26|Integrated into japanese/kinput2 japanese/kinput2-canna+freewnn+sj3|japanese/kinput2|2008-10-26|Integrated into japanese/kinput2 japanese/kinput2-canna+sj3|japanese/kinput2|2008-10-26|Integrated into japanese/kinput2 japanese/kinput2-canna+sj3+wnn6|japanese/kinput2|2008-10-26|Integrated into japanese/kinput2 japanese/kinput2-canna+sj3+wnn7|japanese/kinput2|2008-10-26|Integrated into japanese/kinput2 japanese/kinput2-canna+wnn6|japanese/kinput2|2008-10-26|Integrated into japanese/kinput2 japanese/kinput2-canna+wnn7|japanese/kinput2|2008-10-26|Integrated into japanese/kinput2 japanese/kinput2-freewnn|japanese/kinput2|2008-10-26|Integrated into japanese/kinput2 japanese/kinput2-freewnn+sj3|japanese/kinput2|2008-10-26|Integrated into japanese/kinput2 japanese/kinput2-sj3|japanese/kinput2|2008-10-26|Integrated into japanese/kinput2 japanese/kinput2-sj3+wnn6|japanese/kinput2|2008-10-26|Integrated into japanese/kinput2 japanese/kinput2-sj3+wnn7|japanese/kinput2|2008-10-26|Integrated into japanese/kinput2 japanese/kinput2-wnn6|japanese/kinput2|2008-10-26|Integrated into japanese/kinput2 japanese/kinput2-wnn7|japanese/kinput2|2008-10-26|Integrated into japanese/kinput2 japanese/onew-canna|japanese/onew|2008-10-26|Integrated into japanese/onew japanese/onew-canna+freewnn|japanese/onew|2008-10-26|Integrated into japanese/onew japanese/onew-canna+wnn6|japanese/onew|2008-10-26|Integrated into japanese/onew japanese/onew-canna+wnn7|japanese/onew|2008-10-26|Integrated into japanese/onew japanese/onew-freewnn|japanese/onew|2008-10-26|Integrated into japanese/onew japanese/onew-wnn6|japanese/onew|2008-10-26|Integrated into japanese/onew japanese/onew-wnn7|japanese/onew|2008-10-26|Integrated into japanese/onew japanese/jvim||2008-10-26|Removed: no longer maintained japanese/jvim-canna||2008-10-26|Removed: no longer maintained japanese/jvim-canna+freewnn||2008-10-26|Removed: no longer maintained japanese/jvim-canna+wnn6||2008-10-26|Removed: no longer maintained japanese/jvim-canna+wnn7||2008-10-26|Removed: no longer maintained japanese/jvim-freewnn||2008-10-26|Removed: no longer maintained japanese/jvim-wnn6||2008-10-26|Removed: no longer maintained japanese/jvim-wnn7||2008-10-26|Removed: no longer maintained japanese/jvim3-canna|japanese/jvim3|2008-10-28|Integrated into japanese/jvim3 japanese/jvim3-canna+freewnn|japanese/jvim3|2008-10-28|Integrated into japanese/jvim3 japanese/jvim3-canna+wnn6|japanese/jvim3|2008-10-28|Integrated into japanese/jvim3 japanese/jvim3-canna+wnn7|japanese/jvim3|2008-10-28|Integrated into japanese/jvim3 japanese/jvim3-direct_canna|japanese/jvim3|2008-10-28|Integrated into japanese/jvim3 japanese/jvim3-freewnn|japanese/jvim3|2008-10-28|Integrated into japanese/jvim3 japanese/jvim3-wnn6|japanese/jvim3|2008-10-28|Integrated into japanese/jvim3 japanese/jvim3-wnn7|japanese/jvim3|2008-10-28|Integrated into japanese/jvim3 security/libfwbuilder2|security/libfwbuilder|2008-11-05|Replaced by libfwbuilder 3.0 security/fwbuilder2|security/fwbuilder|2008-11-05|Replaced by fwbuilder 3.0 japanese/magicpoint|misc/magicpoint|2008-11-07|Integrated into misc/magicpoint databases/firebird2-client|databases/firebird20-client|2008-11-24|Renamed databases/firebird2-server|databases/firebird20-server|2008-11-24|Renamed emulators/linux_base-gentoo-stage2||2008-11-24|Removed emulators/linux_dist-gentoo-stage2||2008-11-24|Removed mail/libspf-alt||2008-12-03|Removed portuguese/aspell|portuguese/aspell-pt_PT|2008-12-07|Repocopy finished for proper package naming x11-wm/kahakai||2008-12-07|Has expired: Development ceased palm/synce-gnomevfs||2008-12-07|Has expired: No longer supported by developers palm/synce-kde||2008-12-07|Has expired: No longer supported by developers palm/synce-multisync||2008-12-07|Has expired: No longer supported by developers shells/ksh93-devel||2008-12-07|Has expired: This port is outdated, please use shells/ksh93 sysutils/dtc-toaster||2008-12-07|Has expired: Has been broken for more than 6 months sysutils/dusage||2008-12-07|Has expired: Has been broken for more than 6 months games/linux-alienarena||2008-12-07|Has expired: Has been broken for more than 6 months japanese/escpf||2008-12-07|Has expired: Has been broken for more than 6 months java/java-gcj-compat||2008-12-07|Has expired: Has been broken for more than 6 months lang/screamer||2008-12-07|Has expired: Has been broken for more than 6 months misc/documancer||2008-12-07|Has expired: Unmaintained upstream multimedia/manslide||2008-12-07|Has expired: Use multimedia/smile instead net/globus4||2008-12-07|Has expired: Has been broken for more than 6 months net/p5-Parallel-MPI||2008-12-07|Has expired: Has been broken for more than 6 months net/p54u||2008-12-07|Has expired: website disappeared net-im/ginsu||2008-12-07|Has expired: Has been broken for more than 6 months net-p2p/py-kenosis-bittorrent||2008-12-07|Has expired: Has been broken for more than 6 months sysutils/sjog||2008-12-07|Has expired: Has been broken for more than 6 months textproc/Ebnf2ps||2008-12-07|Has expired: Has been broken for more than 6 months www/roxen||2008-12-07|Has expired: Has been broken for more than 6 months x11-fm/evidence||2008-12-07|Has expired: Has been broken for more than 6 months www/yui||2008-12-09|Already exists as www/yahoo-ui security/pecl-filter|security/php5-filter|2008-12-11|Now bundled in php5 math/py-numeric17||2008-12-12|Old obsolete version devel/hs-buddha||2008-12-13|Has expired: Has been broken for more than 6 months devel/hs-tclhaskell-ghc||2008-12-13|Has expired: Has been broken for more than 6 months devel/pear-apd||2008-12-13|Has expired: Has been broken for more than 6 months databases/py-tada||2008-12-13|Has expired: Has been broken for more than 6 months databases/qdbm-java||2008-12-13|Has expired: Has been broken for more than 6 months audio/shellac||2008-12-13|Has expired: Has been broken for more than 6 months audio/snett||2008-12-13|Has expired: Has been broken for more than 6 months x11-wm/alloywm||2008-12-13|Has expired: Has been broken for more than 6 months, upstream disappeared x11/9term||2008-12-13|Has expired: depends on expired port textproc/rubygem-spreadsheet-excel|textproc/rubygem-spreadsheet|2008-12-14|Project renamed textproc/hs-utf8-string||2008-12-19|Duplicate of devel/hs-utf8-string-ghc audio/euphoria||2008-12-19|Has been broken or ignored for past 24 months, depends on broken, expired port audio/ruby-xmms2-ecore||2008-12-19|Has expired: Has been broken for more than 6 months databases/p5-DBD-PgSPI||2008-12-19|Has expired: Has been broken for more than 6 months databases/mysql-query-browser||2008-12-19|Has expired: Has been broken for more than 6 months, abandoned upstream games/clanbomber||2008-12-19|Has expired: Has been broken for more than 6 months graphics/gstreamer-plugins-swfdec||2008-12-19|Has expired: Has been broken for more than 6 months irc/erc||2008-12-19|Has expired: Has been broken for more than 6 months lang/chameleon||2008-12-19|Has expired: Has been broken for more than 6 months math/ses||2008-12-19|Has expired: Has been broken for more than 6 months x11-toolkits/p5-qt||2008-12-19|Has expired: Has been broken for more than 6 months www/phpSysInfo||2008-12-24|Split into www/phpsysinfo and www/phpsysinfo-dev japanese/msdosfs||2008-12-28|Removed: only for 5.x korean/msdosfs||2008-12-28|Removed: only for 5.x security/openssl-stable|security/openssl|2008-12-30|Removed: only for 6.0 dns/bind9-dlz|dns/bind94|2008-12-31|DLZ patches are now in bind 9.4 distribution x11-drivers/xf86-video-i810|x11-drivers/xf86-video-intel|2009-01-05|Replaced by the xf86-video-intel driver misc/utf8locale||2009-01-05|Part of the base system since FreeBSD 5.3 lang/gcc41-withgcjawt||2009-01-06|Removed java/gjdoc||2009-01-06|Removed java/ecj-bootstrap||2009-01-06|Removed emulators/mupen64plus-sound||2009-01-06|No supported anymore by mupen64plus team misc/heyu||2009-01-07|Has expired: no longer under development, use misc/heyu2 sysutils/pkill||2009-01-07|Part of the base system since FreeBSD 5.3 ports-mgmt/portsnap||2009-01-07|Part of the base system since FreeBSD 5.5 lang/py-compiler||2009-01-08|Included with Python since 2.2 net/nvnet||2009-01-08|Part of the base system since FreeBSD 6.0 security/openssl-beta|security/openssl|2009-01-09|Removed accessibility/gail|x11-toolkits/gtk20|2009-01-10|Now included with Gtk20 accessibility/gail-reference|x11-toolkits/gtk20-reference|2009-01-10|Now included with Gtk20 x11/fast-user-switch-applet|x11/gdm|2009-01-10|This is now part of GDM net-mgmt/bsnmpd||2009-01-10|Part of the base system since FreeBSD 6.0 devel/cogito||2009-01-11|Broken and abandoned upstream net-mgmt/hobbit-client|net-mgmt/xymon-client|2009-01-11|Renamed net-mgmt/hobbit-server|net-mgmt/xymon-server|2009-01-11|Renamed science/gchempaint|science/gchemutils|2009-01-13|gchempaint was integrated into gchemutils net/fpc-libasync|devel/fpc-fcl-async|2009-01-13|This unit was renamed x11-toolkits/forms|x11-toolkits/xforms|2009-01-13|This unit was renamed x11-toolkits/gtk|x11-toolkits/gtk12|2009-01-13|This unit was renamed devel/fpc-gconf||2009-01-13|This is now part of fpc-gnome1 x11-toolkits/fpc-zvt||2009-01-13|This is now part of fpc-gnome1 net/fpc-netdb||2009-01-13|This is now part of fpc-fcl-net textproc/p5-Text-CSV_PP||2009-01-14|Has expired: textproc/Text-CSV_PP was merged into textproc/p5-Text-CSV games/fgfs-base|games/flightgear-data|2009-01-15|Renamed lang/gcc41|lang/gcc42|2009-01-17|Abandoned upstream, superseded by gcc42 and, preferably, gcc43 devel/apr-svn|devel/apr|2009-01-18|Only needed for FreeBSD 5.2 and below for threading math/elmer-mathlibs||2009-01-18|Removed textproc/py-wbxml||2009-01-19|Expired: No longer supported by developers mail/claws-mail-smime|mail/claws-mail|2009-01-19|The SMIME plugin is included in the main port via the GPGME option now www/fpc-httpd||2009-01-19|Split into www/fpc-httpd13, www/fpc-httpd20, and www/fpc-httpd22 multimedia/vlc-devel||2009-01-19|Removed: merged into multimedia/vlc textproc/nltk_lite||2009-01-21|Removed x11-toolkits/fox10||2009-01-21|Removed deprecated port, use x11-toolkits/fox16 instead x11-toolkits/fxscintilla-fox10||2009-01-21|Removed deprecated port, use x11-toolkits/fxscintilla instead x11-toolkits/py-fox||2009-01-21|Removed deprecated port, has a broken dependency x11-toolkits/ruby-fox10||2009-01-21|Removed deprecated port, use x11-toolkits/ruby-fox16 instead devel/linux-glib2||2009-01-21|Removed since the port is incorporated into all Linux base ports x11/xorg-protos||2009-01-23|Not really necessary x11-drivers/synaptics|x11-drivers/xf86-input-synaptics|2009-01-23|Now an official X.Org driver lang/gcc28|lang/gcc42|2009-01-24|Abandoned upstream, superseded by gcc42 and, preferably, gcc43 x11/xphelloworld||2009-01-24|Xprint application, deprecated upstream x11/xclock|x11-clocks/xclock|2009-01-28|Moved to a more appropriate category lang/perl5|lang/perl5.6|2009-02-01|Renamed devel/libmcve|devel/libmonetra|2009-02-01|Project renamed misc/gnomesword|misc/xiphos|2009-02-02|Project renamed www/aolserver-nscache||2009-02-03|Removed games/emacs-chess||2009-02-03|Has expired: has been broken for more than 6 months devel/subversion-devel||2009-02-03|Has expired: Use devel/subversion or devel/subversion-freebsd instead of this port devel/hs-hpl||2009-02-03|Has expired: has been broken for more than 6 months mail/claws-mail-clamav||2009-02-03|Has expired: has been broken for more than 6 months mail/sylpheed2-devel||2009-02-03|Has expired: has been broken for more than 6 months www/pecl-mnogosearch||2009-02-03|Has expired: has been broken for more than 6 months x11-fonts/mathfonts||2009-02-03|Has expired: This port was supported by Mozilla 1.8 (including Firefox 2.0) - to be replaced by STIX fonts for Firefox 3.x x11-wm/fluxspace||2009-02-03|Has expired: has been broken for more than 6 months x11-wm/expocity||2009-02-03|Has expired: project has been abandoned x11/bbuname||2009-02-03|Has expired: has been broken for more than 6 months security/squidclam||2009-02-03|Has expired: has been broken for more than 6 months print/virtualpaper||2009-02-03|Has expired: depends on broken, expired port print/ifhp||2009-02-03|Has expired: has been broken for more than 6 months net-p2p/peercast||2009-02-03|Has expired: has been forbidden for more than 6 months palm/pdbc||2009-02-03|Has expired: has been broken for more than 6 months net-mgmt/NeTraMet||2009-02-03|Has expired: has been broken for more than 6 months net-im/sulci||2009-02-03|Has expired: has been broken for more than 6 months multimedia/mjpegtools-yuvfilters||2009-02-03|Has expired: has been broken for more than 6 months multimedia/helixplayer||2009-02-03|Has expired: has been broken for more than 6 months misc/pybliographer||2009-02-03|Has expired: has been broken for more than 6 months net/versuch||2009-02-03|Has expired: has been broken for more than 6 months net/py-mantissa||2009-02-03|Has expired: has been broken for more than 6 months net/libunpipc||2009-02-03|Has expired: has been broken for more than 6 months net/gnometelnet||2009-02-03|Has expired: has been broken for more than 6 months net/gacxtool||2009-02-03|Has expired: depends on expired, broken port devel/py-coro||2009-02-03|Has expired: has been broken for more than 6 months chinese/stardict2-dict-zh_TW||2009-02-03|Has expired: has been broken for more than 6 months x11-themes/gtk-industrial-theme||2009-02-03|Has expired: has been broken for more than 6 months sysutils/srmt||2009-02-07|Moved into archivers/star devel/libslang|devel/libslang2|2009-02-07|Abandoned upstream, replaced by devel/libslang2 graphics/processing-devel|graphics/processing|2009-02-09|Retire, as non-devel port was updated to newer version audio/xmms-imms||2009-02-13|Has expired: does not configure or build devel/libgnugetopt||2009-02-13|Has expired: was only relevant on FreeBSD 4.x games/planeshift||2009-02-13|Has expired: Depends on broken, expired port net-mgmt/nfsen-devel||2009-02-13|Has expired: no separate development version exists anymore www/ocaml-wdialog||2009-02-13|Has expired: has been broken for more than 6 months news/sabnzbd||2009-02-13|Has expired: no longer developed, use news/sabnzbdplus instead devel/erlslang||2009-02-14|Broken with libslang2; no upstream development mail/py-pyclamd|security/py-pyclamd|2009-02-14|Category change deskutils/zbgset|deskutils/p5-ZConf-BGSet|2009-02-15|Integrated into deskutils/p5-ZConf-BGSet deskutils/zbgset-admin|deskutils/p5-ZConf-BGSet|2009-02-15|Integrated into deskutils/p5-ZConf-BGSet net/samba32-devel|net/samba32|2009-02-16|Samba 3.2 became stable enough to be used in production editors/sam||2009-02-19|Has expired: distfile and homepage disappeared math/slsc||2009-02-28|Has expired: No longer maintained by author finance/eqonomize|finance/eqonomize-kde3|2009-03-02|Use finance/eqonomize-kde3 x11/libxfce4mcs||2009-03-02|Got obsolete by Xfce 4.6 update sysutils/xfce4-mcs-manager||2009-03-02|Got obsolete by Xfce 4.6 update sysutils/xfce4-mcs-plugins||2009-03-02|Got obsolete by Xfce 4.6 update x11-themes/xfce4-icon-theme||2009-03-02|Got obsolete by Xfce 4.6 update x11-toolkits/scx||2009-03-06|Abandoned upstream x11-toolkits/xg||2009-03-06|Abandoned upstream audio/quelcom||2009-03-07|Abandoned upstream, requires obsolete version of GCC math/cxsc||2009-03-07|Abandoned upstream, requires obsolete version of GCC devel/prcs||2009-03-07|Abandoned upstream, requires obsolete version of GCC devel/tvision||2009-03-07|Abandoned upstream, requires obsolete version of GCC textproc/latte||2009-03-07|Abandoned upstream, requires obsolete version of GCC textproc/nicetext||2009-03-07|Abandoned upstream, requires obsolete version of GCC multimedia/libspiff|multimedia/libxspf|2009-03-08|Project renamed graphics/libgdgeda||2009-03-09|Has expired: is not required anymore japanese/ruby-tk||2009-03-09|Has expired: uses old Tk, not required with newer versions www/p5-Cookie-XS|www/p5-CGI-Cookie-XS|2009-03-09|Renamed databases/rubygem-rrdtool||2009-03-09|Has expired: port no longer maintained upstream; use rrdtools' own Ruby bindings instead graphics/crystalentitylayer-devel||2009-03-09|Has expired: Depends on broken, expired port graphics/crystalspace-devel||2009-03-09|Has expired: Has been broken for more than 6 months ftp/downloader||2009-03-09|Has expired: sources unavailable - website disappeared devel/rubygem-mojombo-grit||2009-03-09|Has expired: Obsolete, use devel/rubygem-grit instead mail/postfix1||2009-03-09|Has expired: Not supported anymore by vendor. Please choose a new one version mail/postfix21||2009-03-09|Has expired: Not supported anymore by vendor. Please choose a new one version mail/postfix22||2009-03-09|Has expired: Not supported anymore by vendor. Please choose a new one version www/rubygem-actionwebservice||2009-03-09|Has expired: from rails 2.0 www/rubygem-rails use www/rubygem-activeresource instead x11-toolkits/inti-gconf||2009-03-09|Has expired: unmaintained upstream for more than five years; no ports depend on it x11-toolkits/inti-gl||2009-03-09|Has expired: unmaintained upstream for more than five years; no ports depend on it x11-toolkits/inti-sourceview||2009-03-09|Has expired: unmaintained upstream for more than five years; no ports depend on it misc/git|misc/gnuit|2009-03-14|Renamed lang/gcc33|lang/gcc43|2009-03-14|Abandoned upstream, superseded by later versions sysutils/libisoburn|sysutils/xorriso|2009-03-16|Project was renamed games/PySolFC|games/pysolfc|2009-03-19|Port renamed net-im/ruby-xmpp4r|net-im/rubygem-xmpp4r|2009-03-21|Renamed audio/rhythmbox-devel|audio/rhythmbox|2009-03-21|Main port updated to the latest stable version net/penguintv-devel||2009-03-23|Main port updated to the latest stable version x11/oclock|x11-clocks/oclock|2009-03-23|Moved to a more appropriate category www/p5-Catalyst-Plugin-Authentication-Store-DBIx-Class||2009-03-23|Removed emulators/dlx||2009-03-23|Has expired: unmaintained, does not work with current versions of GCC, needs gcc295 which has been failing to build for months java/javel||2009-03-23|Has expired: unmaintained, does not work with current versions of GCC, needs gcc295 which has been failing to build for months java/guavac||2009-03-23|Has expired: unmaintained, does not work with current versions of GCC, needs gcc295 which has been failing to build for months graphics/xrml||2009-03-23|Has expired: unmaintained, does not work with current versions of GCC, needs gcc295 which has been failing to build for months graphics/renderpark||2009-03-23|Has expired: unmaintained, does not work with current versions of GCC, needs gcc295 which has been failing to build for months irc/blackened||2009-03-23|Has expired: Broken and abandonware devel/libg++||2009-03-23|Has expired: unmaintained, does not work with current versions of GCC, needs gcc295 which has been failing to build for months devel/freescope||2009-03-23|Has expired: unmaintained, does not work with current versions of GCC, needs gcc295 which has been failing to build for months misc/menushki||2009-03-23|Has expired: unmaintained, does not work with current versions of GCC, needs gcc295 which has been failing to build for months misc/vbidecode||2009-03-23|Has expired: unmaintained, does not work with current versions of GCC, needs gcc295 which has been failing to build for months lang/wamcc||2009-03-23|Has expired: unmaintained, does not work with current versions of GCC, needs gcc295 which has been failing to build for months multimedia/mpegedit||2009-03-23|Has expired: unmaintained, does not work with current versions of GCC, needs gcc295 which has been failing to build for months mail/dkimap4||2009-03-23|Has expired: unmaintained, does not work with current versions of GCC, needs gcc295 which has been failing to build for months net-mgmt/oproute||2009-03-23|Has expired: unmaintained, does not work with current versions of GCC, needs gcc295 which has been failing to build for months x11/tkgoodstuff||2009-03-23|Has expired: Tcl 8.0 support is going to be dropped x11-toolkits/inti||2009-03-23|Has expired: unmaintained upstream for more than five years; no ports depend on it mbone/nte||2009-03-23|Has expired: Tcl 8.0 support is going to be dropped mbone/relate||2009-03-23|Has expired: Tcl 8.0 support is going to be dropped mbone/wbd||2009-03-23|Has expired: Tcl 8.0 support is going to be dropped comms/plp||2009-03-24|Has expired: unmaintained, does not work with current versions of GCC, needs gcc295 which has been failing to build for months devel/ruby-zoom|devel/rubygem-zoom|2009-03-26|Renamed net/sipxcalllib||2009-03-28|Has expired: old version, needs updating net/sipxcommserverlib||2009-03-28|Has expired: old version, needs updating, and does not compile net/sipxconfig||2009-03-28|Has expired: depends on broken port net/sipxcommserverlib net/sipxmediaadapterlib||2009-03-28|Has expired: old version, needs updating net/sipxmedialib||2009-03-28|Has expired: old version, needs updating net/sipxpbx||2009-03-28|Has expired: depends on broken port net/sipxcommserverlib net/sipxproxy||2009-03-28|Has expired: depends on broken port net/sipxcommserverlib net/sipxportlib||2009-03-28|Has expired: old version, needs updating net/sipxpublisher||2009-03-28|Has expired: depends on broken port net/sipxcommserverlib net/sipxregistry||2009-03-28|Has expired: depends on broken port net/sipxcommserverlib net/sipxtacklib||2009-03-28|Has expired: old version, needs updating net/sipxvxml||2009-03-28|Has expired: old version, needs updating www/drupal4-attachment||2009-04-04|Has expired: Drupal 4.7.x is end-of-life since 200802. Please migrate to Drupal 6.x www/drupal4-filemanager||2009-04-04|Has expired: Drupal 4.7.x is end-of-life since 200802. Please migrate to Drupal 6.x www/drupal4-gsitemap||2009-04-04|Has expired: Drupal 4.7.x is end-of-life since 200802. Please migrate to Drupal 6.x www/drupal4-i18n||2009-04-04|Has expired: Drupal 4.7.x is end-of-life since 200802. Please migrate to Drupal 6.x www/drupal4-nice_menus||2009-04-04|Has expired: Drupal 4.7.x is end-of-life since 200802. Please migrate to Drupal 6.x www/drupal4-taxonomy_access||2009-04-04|Has expired: Drupal 4.7.x is end-of-life since 200802. Please migrate to Drupal 6.x www/drupal4-textile||2009-04-04|Has expired: Drupal 4.7.x is end-of-life since 200802. Please migrate to Drupal 6.x www/drupal4||2009-04-04|Has expired: Drupal 4.7.x is end-of-life since 200802. Please migrate to Drupal 6.x www/squid26||2009-04-04|Has expired: The 2.6 series is no longer actively maintained by the Squid developers x11-themes/camaelon-nesedah||2009-04-04|Has expired: now included in camaelon x11-wm/compiz-fusion-plugins-main|x11-wm/compiz-plugins-main|2009-04-08|Dropping the fusion name x11-wm/compiz-fusion-plugins-extra|x11-wm/compiz-plugins-extra|2009-04-08|Dropping the fusion name x11-wm/compiz-fusion-plugins-unsupported|x11-wm/compiz-plugins-unsupported|2009-04-08|Dropping the fusion name devel/gnome-build||2009-04-10|This port has been merged into Anjuta and is now obsolete sysutils/gnome-volume-manager||2009-04-10|This port has been obsoleted by Nautilus science/oof||2009-04-11|Has expired: Broken with GCC 4.2 and beyond www/raqdevil||2009-04-11|Has expired: Master site gone, distfiles not fetchable devel/arm-rtems-g77|devel/arm-rtems-gcc|2009-04-11|Has expired: use arm-rtems-gcc instead devel/arm-rtems-objc|devel/arm-rtems-gcc|2009-04-11|Has expired: use arm-rtems-gcc instead devel/i386-rtems-g77|devel/i386-rtems-gcc|2009-04-11|Has expired: use i386-rtems-gcc instead devel/i386-rtems-objc|devel/i386-rtems-gcc|2009-04-11|Has expired: use i386-rtems-gcc instead devel/i960-rtems-binutils||2009-04-11|Has expired: abandoned by mainstream devel/i960-rtems-gcc||2009-04-11|Has expired: abandoned by mainstream devel/i960-rtems-gdb||2009-04-11|Has expired: abandoned by mainstream devel/m68k-rtems-g77|devel/m68k-rtems-gcc|2009-04-11|Has expired: use m68k-rtems-gcc instead devel/m68k-rtems-objc|devel/m68k-rtems-gcc|2009-04-11|Has expired: use m68k-rtems-gcc instead devel/mips-rtems-g77|devel/mips-rtems-gcc|2009-04-11|Has expired: use mips-rtems-gcc instead devel/mips-rtems-objc|devel/mips-rtems-gcc|2009-04-11|Has expired: use mips-rtems-gcc instead devel/powerpc-rtems-g77|devel/powerpc-rtems-gcc|2009-04-11|Has expired: use powerpc-rtems-gcc instead devel/powerpc-rtems-objc|devel/powerpc-rtems-gcc|2009-04-11|Has expired: use powerpc-rtems-gcc instead devel/sh-rtems-g77|devel/sh-rtems-gcc|2009-04-11|Has expired: use sh-rtems-gcc instead devel/sh-rtems-objc|devel/sh-rtems-gcc|2009-04-11|Has expired: use sh-rtems-gcc instead devel/sparc-rtems-g77|devel/sparc-rtems-gcc|2009-04-11|Has expired: use sparc-rtems-gcc instead devel/sparc-rtems-objc|devel/sparc-rtems-gcc|2009-04-11|Has expired: use sparc-rtems-gcc instead polish/gnugadu|polish/gnugadu2|2009-04-11|Has expired: Not developed anymore, unmaintained security/cutlass||2009-04-11|Has expired: does not work with current version of security/botan www/rt2|www/rt38|2009-04-11|Obsolete version, use www/rt38 instead www/rt32|www/rt38|2009-04-11|Obsolete version, use www/rt38 instead www/rt34|www/rt38|2009-04-11|Obsolete version, use www/rt38 instead www/mod_snake||2009-04-12|Doesn't compile; abandoned upstream since 2002 www/mod_mya||2009-04-13|Depends on broken databases/mysql323-client www/mod_mysqluserdir||2009-04-13|Depends on broken databases/mysql323-client x11/nvidia-driver-71xx|x11/nvidia-driver-71|2009-04-13|Renamed x11/nvidia-driver-96xx|x11/nvidia-driver-96|2009-04-13|Renamed emulators/cpmtools27|emulators/cpmtools2|2009-04-25|Renamed games/chromium|games/chromium-bsu|2009-04-26|Renamed russian/xneur|deskutils/xneur|2009-04-27|Better category: supports many languages audio/rubygem-mp3info|audio/rubygem-ruby-mp3info|2009-04-28|Updated to match GEM name, use rubygem-ruby-mp3info instead sysutils/linux-megacli2|sysutils/linux-megacli|2009-04-30|Folded into unversioned port directory net/vnstati|net/vnstat|2009-04-30|Use net/vnstat audio/snowstar||2009-05-01|Has expired: Tcl 8.0 support is going to be dropped devel/cppadvio||2009-05-01|Has expired: abandoned upstream, does not work with current versions of GCC, needs gcc295 which has been failing to build for months irc/olirc||2009-05-01|Has expired: project is discontinued and Tcl 8.2 support is going to be dropped multimedia/toxine||2009-05-01|Has expired: has been inactive for almost 5 years net-mgmt/nagios12||2009-05-01|Has expired: Obsolete version, consider migration to net-mgmt/nagios sysutils/bbsmount||2009-05-01|Has expired: unmaintained, does not work with current versions of GCC, needs gcc295 which has been failing to build for months sysutils/puppet-devel||2009-05-01|Has expired: Use sysutils/puppet instead sysutils/tua||2009-05-01|Has expired: unmaintained, does not work with current versions of GCC, needs gcc295 which has been failing to build for months x11/qrash||2009-05-01|Has expired: unmaintained, does not work with current versions of GCC, needs gcc295 which has been failing to build for months textproc/sp||2009-05-03|Has expired: unmaintained, does not work with current versions of GCC, needs gcc295 which has been failing to build for months www/phpsurveyor|www/limesurvey|2009-05-05|Project was renamed devel/oskit||2009-05-07|Has expired: does not work with current versions of GCC, needs gcc295 which has been failing to build for months, no active maintainer www/p5-WWW-Nicovideo-Download|www/p5-WWW-NicoVideo-Download|2009-05-07|Directory renamed german/swissgerman-ding|german/ding|2009-05-12|Integrated into german/ding misc/sonytv||2009-05-28|Has expired: Tcl 8.3 support is going to be dropped mail/postilion||2009-05-28|Has expired: Tcl 8.3 support is going to be dropped x11-toolkits/p5-TclTk||2009-05-28|Has expired: replaced by x11-toolkits/p5-Tcl-Tk japanese/ipa-ttfonts|japanese/font-ipa|2009-05-30|Renamed japanese/sazanami-ttf|japanese/font-sazanami|2009-05-30|Renamed japanese/kochi-ttfonts|japanese/font-kochi|2009-05-30|Renamed japanese/umefont|japanese/font-ume|2009-05-30|Renamed japanese/mplusfonts|japanese/font-mplus|2009-05-30|Renamed japanese/vlgothic|japanese/font-vlgothic|2009-05-30|Renamed japanese/shinonome|japanese/font-shinonome|2009-05-30|Renamed net/tftp-hpa|ftp/tftp-hpa|2009-05-31|Duplicate port biology/p5-bioperl-devel||2009-06-05|Has expired: no longer under development biology/p5-bioperl-run-devel||2009-06-05|Has expired: no longer under development net-p2p/deluge05||2009-06-05|Has expired: use net-p2p/deluge instead textproc/gmat||2009-06-05|Has expired: failed to build for a long time, no maintainer and apparently no users either devel/powerpc-gcc||2009-06-06|Has expired: use cross-gcc instead devel/powerpc-binutils||2009-06-06|Has expired: use cross-binutils instead www/apache-jserv|www/tomcat6|2009-06-08|Has expired: superseded by tomcat lang/perl5.6||2009-06-08|Has expired: no longer under development, use lang/perl5.10 or lang/perl5.8 multimedia/dplay|multimedia/playd|2009-06-10|Port renamed www/epiphany-webkit|www/epiphany|2009-06-10|Webkit backend isn't supported japanese/slirc||2009-06-13|Removed chinese/wordpress||2009-06-13|Removed due to security vulnerabilities www/amaya||2009-06-13|Removed due to security vulnerabilities www/awstats-devel||2009-06-13|Removed due to security vulnerabilities audio/festival+OGI||2009-06-13|Has expired: unmaintained, does not work with current versions of GCC, needs gcc295 which has been failing to build for months audio/festlex-ifd||2009-06-13|Has expired: unfulfilled dependencies for 8+ months, no active maintainer, no user interest audio/festogi-italian||2009-06-13|Has expired: unfulfilled dependencies for 8+ months, no active maintainer, no user interest audio/festogi-spanish||2009-06-13|Has expired: unfulfilled dependencies for 8+ months, no maintainer, no user interest audio/festvox-abc||2009-06-13|Has expired: unfulfilled dependencies for 8+ months, no user interest audio/festvox-hvs||2009-06-13|Has expired: unfulfilled dependencies for 8+ months, no user interest audio/festvox-jph||2009-06-13|Has expired: unfulfilled dependencies for 8+ months, no maintainer, no user interest audio/festvox-lp||2009-06-13|Has expired: unfulfilled dependencies for 8+ months, no active maintainer, no user interest audio/festvox-mwm||2009-06-13|Has expired: unfulfilled dependencies for 8+ months, no maintainer, no user interest audio/festvox-ogirab||2009-06-13|Has expired: unfulfilled dependencies for 8+ months, no maintainer, no user interest audio/festvox-pc||2009-06-13|Has expired: unfulfilled dependencies for 8+ months, no active maintainer, no user interest audio/festvox-tll||2009-06-13|Has expired: unfulfilled dependencies for 8+ months, no maintainer, no user interest audio/py-sdl_mixer||2009-06-13|Has expired: has been broken for more than 6 months graphics/libimg-tk83||2009-06-13|Has expired: Tcl 8.3 support is going to be dropped multimedia/manencode||2009-06-13|Has expired www/mnogosearch31||2009-06-13|Has expired: Use www/mnogosearch instead, this version is ancient www/php4-mnogosearch||2009-06-13|Removed www/winhelpcgi||2009-06-13|Has expired x11-toolkits/p5-GtkXmHTML||2009-06-13|Has expired: depends on a broken, expired port x11-toolkits/wxmozilla||2009-06-13|Has expired: has been broken for more than 6 months audio/gnomad2||2009-06-13|Removed audio/p5-Audio-TagLib||2009-06-13|Removed audio/sineshaper||2009-06-13|Removed comms/xcept||2009-06-13|Removed; obsolete protocol no longer in use by telcos comms/gfax||2009-06-13|Removed deskutils/kio_locate||2009-06-13|Removed deskutils/mical||2009-06-13|Removed devel/p5-VCP||2009-06-13|Removed devel/ruby-p4||2009-06-13|Removed games/fgsd||2009-06-13|Removed graphics/demeter||2009-06-13|Removed irc/ircg||2009-06-13|Removed mail/silkymail||2009-06-13|Removed multimedia/dirac-reference||2009-06-13|Removed multimedia/smilutils||2009-06-13|Removed net-im/icqnd||2009-06-13|Removed net-im/ocaml-jabbr||2009-06-13|Removed net-mgmt/nav||2009-06-13|Removed net/evolution-rss||2009-06-13|Removed net/openpbx.org||2009-06-13|Removed news/inn-current||2009-06-13|Removed science/elmerfront||2009-06-13|Removed science/openfoam||2009-06-13|Removed www/cacheboy||2009-06-13|Removed www/p5-HTML-Embperl||2009-06-13|Removed www/thttpd-st||2009-06-13|Removed www/toofpy||2009-06-13|Removed x11-drivers/xf86-video-vga||2009-06-13|Removed x11-toolkits/py-pyxfce||2009-06-13|Removed multimedia/mlt++|multimedia/mlt|2009-06-15|Project reorganization x11-wm/enlightenment-devel|x11-wm/enlightenment|2009-06-15|Relocated lang/pm3-base||2009-06-15|Has expired: Has been broken for more than 6 months lang/pm3-forms||2009-06-15|Has expired: depends on broken, expired port lang/pm3-gui||2009-06-15|Has expired: depends on broken, expired port lang/pm3-m3tk||2009-06-15|Has expired: depends on broken, expired port lang/pm3-net||2009-06-15|Has expired: depends on broken, expired port lang/pm3-netobj||2009-06-15|Has expired: depends on broken, expired port graphics/juno-2||2009-06-15|Removed net/p5-ZConf-Mail|mail/p5-ZConf-Mail|2009-06-15|Moved to mail/p5-ZConf-Mail net/p5-ZConf-BGSet|deskutils/p5-ZConf-BGSet|2009-06-15|Moved to deskutils/p5-ZConf-BGSet www/postnuke||2009-06-16|Project abandoned x11-toolkits/py-anygui||2009-06-16|No longer actively developed or supported mail/mailrep||2009-06-18|Project abandoned devel/monodoc||2009-06-19|Now included in lang/mono misc/koffice-i18n|editors/koffice-i18n|2009-06-29|Moved to editors category misc/koffice-i18n-af|editors/koffice-i18n-af|2009-06-29|Moved to editors category misc/koffice-i18n-bg|editors/koffice-i18n-bg|2009-06-29|Moved to editors category misc/koffice-i18n-br|editors/koffice-i18n-br|2009-06-29|Moved to editors category misc/koffice-i18n-bs|editors/koffice-i18n-bs|2009-06-29|Moved to editors category misc/koffice-i18n-ca|editors/koffice-i18n-ca|2009-06-29|Moved to editors category misc/koffice-i18n-cs|editors/koffice-i18n-cs|2009-06-29|Moved to editors category misc/koffice-i18n-cy|editors/koffice-i18n-cy|2009-06-29|Moved to editors category misc/koffice-i18n-da|editors/koffice-i18n-da|2009-06-29|Moved to editors category misc/koffice-i18n-el|editors/koffice-i18n-el|2009-06-29|Moved to editors category misc/koffice-i18n-en_GB|editors/koffice-i18n-en_GB|2009-06-29|Moved to editors category misc/koffice-i18n-eo|editors/koffice-i18n-eo|2009-06-29|Moved to editors category misc/koffice-i18n-es|editors/koffice-i18n-es|2009-06-29|Moved to editors category misc/koffice-i18n-et|editors/koffice-i18n-et|2009-06-29|Moved to editors category misc/koffice-i18n-eu|editors/koffice-i18n-eu|2009-06-29|Moved to editors category misc/koffice-i18n-fa|editors/koffice-i18n-fa|2009-06-29|Moved to editors category misc/koffice-i18n-fi|editors/koffice-i18n-fi|2009-06-29|Moved to editors category misc/koffice-i18n-ga|editors/koffice-i18n-ga|2009-06-29|Moved to editors category misc/koffice-i18n-gl|editors/koffice-i18n-gl|2009-06-29|Moved to editors category misc/koffice-i18n-hi|editors/koffice-i18n-hi|2009-06-29|Moved to editors category misc/koffice-i18n-hsb|editors/koffice-i18n-hsb|2009-06-29|Moved to editors category misc/koffice-i18n-is|editors/koffice-i18n-is|2009-06-29|Moved to editors category misc/koffice-i18n-it|editors/koffice-i18n-it|2009-06-29|Moved to editors category misc/koffice-i18n-km|editors/koffice-i18n-km|2009-06-29|Moved to editors category misc/koffice-i18n-lo|editors/koffice-i18n-lo|2009-06-29|Moved to editors category misc/koffice-i18n-lt|editors/koffice-i18n-lt|2009-06-29|Moved to editors category misc/koffice-i18n-lv|editors/koffice-i18n-lv|2009-06-29|Moved to editors category misc/koffice-i18n-mk|editors/koffice-i18n-mk|2009-06-29|Moved to editors category misc/koffice-i18n-ms|editors/koffice-i18n-ms|2009-06-29|Moved to editors category misc/koffice-i18n-mt|editors/koffice-i18n-mt|2009-06-29|Moved to editors category misc/koffice-i18n-nb|editors/koffice-i18n-nb|2009-06-29|Moved to editors category misc/koffice-i18n-nl|editors/koffice-i18n-nl|2009-06-29|Moved to editors category misc/koffice-i18n-nn|editors/koffice-i18n-nn|2009-06-29|Moved to editors category misc/koffice-i18n-ro|editors/koffice-i18n-ro|2009-06-29|Moved to editors category misc/koffice-i18n-se|editors/koffice-i18n-se|2009-06-29|Moved to editors category misc/koffice-i18n-sk|editors/koffice-i18n-sk|2009-06-29|Moved to editors category misc/koffice-i18n-sl|editors/koffice-i18n-sl|2009-06-29|Moved to editors category misc/koffice-i18n-sr|editors/koffice-i18n-sr|2009-06-29|Moved to editors category misc/koffice-i18n-sr@Latn|editors/koffice-i18n-sr_Latn|2009-06-29|Moved to editors category misc/koffice-i18n-sv|editors/koffice-i18n-sv|2009-06-29|Moved to editors category misc/koffice-i18n-ta|editors/koffice-i18n-ta|2009-06-29|Moved to editors category misc/koffice-i18n-tg|editors/koffice-i18n-tg|2009-06-29|Moved to editors category misc/koffice-i18n-th|editors/koffice-i18n-th|2009-06-29|Moved to editors category misc/koffice-i18n-tr|editors/koffice-i18n-tr|2009-06-29|Moved to editors category misc/koffice-i18n-uz|editors/koffice-i18n-uz|2009-06-29|Moved to editors category misc/koffice-i18n-ven|editors/koffice-i18n-ven|2009-06-29|Moved to editors category misc/koffice-i18n-xh|editors/koffice-i18n-xh|2009-06-29|Moved to editors category misc/koffice-i18n-zu|editors/koffice-i18n-zu|2009-06-29|Moved to editors category x11-toolkits/tk80||2009-07-07|Has expired: Tcl 8.0 support is dropped lang/tcl80||2009-07-07|Has expired: Tcl 8.0 support is dropped audio/gai-album||2009-07-07|Has expired: abandoned project, does not build audio/gai-visual-audio||2009-07-07|Has expired: abandoned project, does not build devel/linxt||2009-07-07|Has expired: Use devel/roboctl instead german/citrix_ica|net/citrix_ica|2009-07-07|Has expired: Use net/citrix_ica japanese/citrix_ica|net/citrix_ica|2009-07-07|Has expired: Use net/citrix_ica mail/bogofilter-qdbm||2009-07-07|Has expired: Migrate to bogofilter-tc instead mail/xc-mail||2009-07-07|Has expired: depends on a port that expired in 2007 www/trac-blog||2009-07-07|Has expired: Not supported anymore for trac > 0.10; use FullBlogPlugin instead www/trac-restrictedarea||2009-07-07|Has expired: Not supported anymore; functionality included in trac since 0.11 deskutils/plasma-applet-quicklauncher||2009-07-10|Not supported anymore; functionality in kdebase4-workspace now net-mgmt/net-snmp53||2009-07-13|Has expired: Use net-mgmt/net-snmp www/firefox-devel||2009-07-13|Please use www/firefox3 or www/firefox35 databases/phpminadmin|databases/adminer|2009-07-14|Project was renamed math/R-sp|math/R-cran-sp|2009-07-17|Port was renamed lang/gcc-ooo|lang/gcc43|2009-07-18|Not used by OpenOffice anymore, superseded by gcc43 security/altivore||2009-07-19|Removed editors/openoffice.org-2-devel||2009-07-21|Removed games/amy||2009-07-28|Has expired: mastersite disappeared, does not build on recent version security/hashish||2009-07-28|Has expired: does not compile security/smtpmap||2009-07-28|Has expired: depends on GCC 2.95 which has not been available for 9+ months devel/boost|devel/boost-libs|2009-07-28|Boost ports were split and sliced devel/boost-python|devel/boost-python-libs|2009-07-28|Boost ports were split and sliced www/xpi-firegpg||2009-07-31|Removed editors/koffice-i18n-sr@Latn|editors/koffice-i18n-sr_Latn|2009-08-02|Use editors/koffice-i18n-sr_Latn misc/kde3-i18n-sr@Latn|misc/kde3-i18n-sr_Latn|2009-08-02|Use misc/kde3-i18n-sr_Latn lang/tinycobol||2009-08-08|Has expired: no longer being developed; consider using lang/open-cobol instead net/ppptraf||2009-08-08|Removed: author has abandoned this program www/zope-guf||2009-08-08|Removed: no longer being developed: use SimpleUserFolder or exUserFolder instead misc/xenmenu||2009-08-08|Removed: Project abandoned in 1998 security/dns-proxy-tor||2009-08-09|Removed security/trans-proxy-tor||2009-08-09|Removed: trans-proxy-tor is rendered obsolete by Tor's TransPort option (currently only available in tor-devel) science/dft++||2009-08-11|Removed devel/p5-MooseX-Policy-SemiAffordanceAccessor|devel/p5-MooseX-SemiAffordanceAccessor|2009-08-18|Renamed www/mediawiki12|www/mediawiki112|2009-08-19|Renamed lang/gcc42-withgcjawt|lang/gcc42|2009-08-19|Not needed any longer, still an option for the regular lang/gcc ports math/octave-forge-windows||2009-08-23|Abandoned upstream math/freefem++||2009-08-23|Has expired: unmaintained and consistently unportable math/it++||2009-08-23|Has expired: unmaintained and consistently unportable databases/firebird-client||2009-09-03|Removed: no longer under development databases/firebird-server||2009-09-03|Removed: no longer under development audio/slimserver|audio/squeezecenter|2009-09-04|SlimServer has been superseded by SqueezeCenter audio/slimserver-dynamicplaylist|audio/squeezecenter-dynamicplaylist|2009-09-04|SlimServer has been superseded by SqueezeCenter audio/slimserver-dynamictransition||2009-09-04|SlimServer has been superseded by SqueezeCenter audio/slimserver-lastfm||2009-09-04|SlimServer has been superseded by SqueezeCenter audio/slimserver-lazysearch|audio/squeezecenter-lazysearch|2009-09-04|SlimServer has been superseded by SqueezeCenter audio/slimserver-slimscrobbler||2009-09-04|SlimServer has been superseded by SqueezeCenter audio/slimserver-sqlplaylist|audio/squeezecenter-sqlplaylist|2009-09-04|SlimServer has been superseded by SqueezeCenter audio/slimserver-superdatetime|audio/squeezecenter-superdatetime|2009-09-04|SlimServer has been superseded by SqueezeCenter audio/slimserver-trackstat|audio/squeezecenter-trackstat|2009-09-04|SlimServer has been superseded by SqueezeCenter www/conkeror|www/xpi-conkeror|2009-09-05|Please use www/xpi-conkeror www/nvu|www/kompozer|2009-09-10|Abandoned upstream since 2005 editors/bed||2009-09-13|Removed: marked IGNORE for more than two years, unmaintained devel/eric||2009-09-16|Removed: obsoleted by devel/eric4 devel/p5-Algorithm-MDiff||2009-09-16|Has expired: the module was removed from CPAN devel/p5-Data-Postponed||2009-09-16|Has expired: the module was removed from CPAN net/asterisk12-addons||2009-09-16|Has expired: does not build archivers/lzmautils|archivers/xz|2009-09-21|Project was renamed archivers/lzmautils-devel|archivers/xz|2009-09-21|Project was renamed audio/audacious-mac||2009-09-21|Does not work with audacious 2 and audacious-plugins already delivers a demac plugin systutils/uptimec||2009-09-23|Project is gone since 2007 www/cakephp||2009-09-23|Repomoved to www/cakephp11 www/cakephp-devel||2009-09-23|Repomoved to www/cakephp12 audio/gmpccaa||2009-09-24|Unmaintained upstream audio/gmpc-osd||2009-09-24|Unmaintained upstream audio/gmpc-qosd||2009-09-24|Unmaintained upstream audio/gmpc-random-playlist||2009-09-24|Unmaintained upstream audio/gmpc-serverstats||2009-09-24|Unmaintained upstream audio/gmpc-favorites||2009-09-24|Unmaintained upstream audio/gmpc-autoplaylist||2009-09-24|Unmaintained upstream audio/gmpc-stopbutton||2009-09-24|Unmaintained upstream sysutils/zccron|sysutils/p5-ZConf-Cron|2009-09-27|Please use sysutils/p5-ZConf-Cron devel/p5-Cwd|devel/p5-PathTools|2009-09-30|Please use devel/p5-PathTools x11/electricsheep||2009-10-02|No source tarball, Unix code unmaintained sysutils/fusefs-gphotofs||2009-10-05|Removed x11/kxgenerator||2009-10-07|Has expired: Project abandoned, master site disappeared hebrew/geresh||2009-10-08|No longer maintained upstream misc/tmux|sysutils/tmux|2009-10-14|Moved to sysutils category audio/xmms-uade|audio/uade|2009-10-18|Decoupled from XMMS port net-p2p/mute-net-gui|net-p2p/mute-net|2009-10-19|Broken for extensive period of time and unmaintained net-p2p/mute-net-text|net-p2p/mute-net|2009-10-19|Broken for extensive period of time and unmaintained graphics/libwpcg||2009-10-25|Unmaintained upstream, depends on an old version of GCC, lacks a maintainer, and not used by anything else databases/ruby-dbd_msql||2009-10-29|Has expired: no longer under development databases/ruby-dbd_proxy||2009-10-29|Has expired: no longer under development databases/ruby-dbd_interbase||2009-10-29|Has expired: no longer under development textproc/p5-XML-LibXML-Common|textproc/p5-XML-LibXML|2009-10-30|Merged misc/bibletime-kde4|misc/bibletime|2009-10-30|Renamed now that KDE dependencies are removed net/xmlrpc++||2009-10-31|Unmaintained upstream and on the FreeBSD side net-p2p/mute-net||2009-10-31|Broken for extensive period of time and unmaintained emulators/fceu|emulators/fceux|2009-11-04|Repocopied to new location net/p5-Net-EPP-Frame|net/p5-Net-EPP|2009-11-11|Please use net/p5-Net-EPP net/p5-Net-EPP-Client|net/p5-Net-EPP|2009-11-11|Please use net/p5-Net-EPP editors/qemacs||2009-11-19|Has expired: depends on old version of GCC, no maintainer, not used by any other port, dead upstream mail/postfix-gps-devel||2009-11-19|Has expired: Older than main port, no sign of maintainer activity beyond port creation 4+ years ago graphics/php4-ffmpeg||2009-11-19|Has expired: development continues only for php5 net-p2p/nicotine||2009-11-19|Has expired: development stalled years ago, use net-p2p/nicotine-plus instead sysutils/rsyslog||2009-11-19|Has expired: Use sysutils/rsyslog3 or sysutils/rsyslog4 instead sysutils/rsyslog-gssapi||2009-11-19|Has expired: Use sysutils/rsyslog3 or sysutils/rsyslog4 instead sysutils/rsyslog-mysql||2009-11-19|Has expired: Use sysutils/rsyslog3 or sysutils/rsyslog4 instead sysutils/rsyslog-pgsql||2009-11-19|Has expired: Use sysutils/rsyslog3 or sysutils/rsyslog4 instead misc/kde4-l10n-ta||2009-11-19|Has expired: unfetchable and unmaintained upstream security/f-prot-sig||2009-11-20|No longer needed with security/f-prot update lang/gcc295|lang/gcc44|2009-11-21|Abandoned upstream, superseded by later versions games/freebsd-games|games/bsdgames|2009-11-21|Superseded by and equivalent to freebsd-games devel/arm-elf-gcc295|devel/cross-gcc|2009-11-21|Broken with current versions of FreeBSD, abandoned upstream, superseded by later versions x11-toolkits/xclasses||2009-11-24|Has expired: Version branch long since retired mail/p5-Email-MIME-Creator||2009-11-24|Folded into p5-Email-MIME package mail/p5-Email-MIME-Modifier||2009-11-24|Folded into p5-Email-MIME package mail/p5-Email-Simple-Creator||2009-11-24|Folded into p5-Email-Simple package www/gecko-sharp10|www/gecko-sharp20|2009-11-26|Superseded by later version devel/tclxml-libxml2|devel/tclxml|2009-11-26|Port now is part of devel/tclxml devel/tclxml-expat|devel/tclxml|2009-11-26|Port now is part of devel/tclxml www/tcldom|devel/tclxml|2009-11-26|Port now is part of devel/tclxml www/tcldom-libxml2|devel/tclxml|2009-11-26|Port now is part of devel/tclxml devel/gtkmozedit||2009-11-27|No longer under development, does not build with libxul finance/p5-HTML-Query|www/p5-HTML-Query|2009-11-28|Moved to www category graphics/clutter-cairo|graphics/clutter|2009-11-28|This port is obsolete, all functionality is now in graphics/clutter www/galeon||2009-11-28|This port is obsolete; similar functionality can be found in www/epiphany sysutils/policykit-kde||2009-11-29|This port is obsolete; all functionality included in x11/kdebase4 audio/squeezecenter-trackstat|audio/squeezeboxserver-trackstat|2009-11-30|Has expired: Replaced by audio/squeezeboxserver-trackstat audio/squeezecenter-superdatetime|audio/squeezeboxserver-superdatetime|2009-11-30|Has expired: Replaced by audio/squeezeboxserver-superdatetime audio/squeezecenter-sqlplaylist|audio/squeezeboxserver-sqlplaylist|2009-11-30|Has expired: Replaced by audio/squeezeboxserver-sqlplaylist audio/squeezecenter-lazysearch|audio/squeezeboxserver-lazysearch|2009-11-30|Has expired: Replaced by audio/squeezeboxserver-lazysearch audio/squeezecenter-dynamicplaylist|audio/squeezeboxserver-dynamicplaylist|2009-11-30|Has expired: Replaced by audio/squeezeboxserver-dynamicplaylist audio/squeezecenter|audio/squeezeboxserver|2009-11-30|Has expired: Replaced by audio/squeezeboxserver www/mod_auth_mysql41_ap2||2009-11-30|Has expired: distfile no longer fetchable x11-toolkits/gtkscintilla||2009-11-30|Has expired: no longer under development, last release in 2002 x11-toolkits/py-gtkscintilla||2009-11-30|Has expired: no longer under development, last release in 2002 www/xulrunner|www/libxul|2009-12-02|Superseded by www/libxul security/pear-Crypt_HMAC||2009-12-07|Please use security/pear-Crypt_HMAC2 mail/dovecot-devel|mail/dovecot|2009-12-08|Non-devel version is newer net-mgmt/net-snmp-tkmib||2009-12-08|Depends on expired port p5-SNMP net-mgmt/p5-SNMP||2009-12-08|Expired www/jakarta-tomcat4||2009-12-08|Has expired: www/jakarta-tomcat5 is recommended instead for new installations x11-toolkits/p5-Gnome||2009-12-08|Has expired: Has been broken for more than 6 months editors/abiword-extras|editors/abiword|2009-12-08|This subport has been included in the main port editors/abiword-plugins|editors/abiword|2009-12-08|This subport has been included in the main port www/jakarta-tomcat5||2009-12-10|Has expired: Old version, consider using www/tomcat55 or www/tomcat6 instead net-mgmt/zabbix|net-mgmt/zabbix-server|2009-12-13|Port was split into three components net/grdc|net/remmina|2009-12-14|Project was renamed net/grdc-applet|net/remmina-applet|2009-12-14|Project was renamed security/pfw||2009-12-14|Project is no longer maintainer ftp/pftpx||2009-12-15|Broken by libevent update and the project is dead x11-toolkits/evilvte|x11/evilvte|2009-12-15|Moved to x11 category lang/python23||2009-12-18|No longer under development lang/python30||2009-12-18|No longer under development cad/fandango||2009-12-18|No longer under development math/py-mpz||2009-12-18|Depends on expired Python ports www/neon26|www/neon28|2009-12-19|Removed due to security vulnerabilities misc/bsdiff||2009-12-24|Incorporated into base system long ago security/freebsd-update||2009-12-24|Incorporated into base system long ago sysutils/est||2009-12-24|Incorporated into base system long ago sysutils/estctrl||2009-12-24|Incorporated into base system long ago sysutils/freebsd-sha1||2009-12-24|Incorporated into base system long ago sysutils/freebsd-sha256||2009-12-24|Incorporated into base system long ago irc/znc-extras||2009-12-24|Has expired: Migrate to irc/znc instead games/love|devel/love|2009-12-26|Moved to a better category archivers/star-devel||2009-12-26|Removed databases/mysql54-client|databases/mysql55-client|2010-01-04|Updated to milestone 2 databases/mysql54-server|databases/mysql55-server|2010-01-04|Updated to milestone 2 databases/mysql54-scripts|databases/mysql55-scripts|2010-01-04|Updated to milestone 2 databases/p5-DBD-mysql54|databases/p5-DBD-mysql55|2010-01-04|Updated to milestone 2 misc/sword15|misc/sword|2010-01-06|Has expired: use misc/sword misc/bibletime-kde3|misc/bibletime|2010-01-06|Has expired: use misc/bibletime mail/squirrelmail-devel|mail/squirrelmail|2010-01-06|Has expired: use mail/squirrelmail lang/drscheme|lang/plt-scheme|2010-01-07|Superseded by lang/plt-scheme databases/mysql60-client||2010-01-10|Has expired: no longer under development databases/mysql60-server||2010-01-10|Has expired: no longer under development databases/mysql60-scripts||2010-01-10|Has expired: no longer under development databases/p5-DBD-mysql60||2010-01-10|Has expired: no longer under development devel/cl-asdf-sbcl||2010-01-12|lang/sbcl has a bundled asdf version emulators/virtualbox|emulators/virtualbox-ose|2010-01-13|Renamed and split into two components devel/gold|devel/binutils|2010-01-13|Part of binutils shells/tcsh-bofh||2010-01-15|Removed audio/ccaudio||2010-01-18|Has expired: has been broken for 4 months audio/py-libmpdclient||2010-01-18|Has expired: has been broken for 3 months chinese/gbk2uni||2010-01-18|Has expired: has been broken for 6 months chinese/iiimf-le-xcin||2010-01-18|Has expired: has been broken for 3 months devel/adabindx||2010-01-18|Has expired: has been broken for 3 months devel/agide||2010-01-18|Has expired: has been broken for 6 months devel/asis||2010-01-18|Has expired: has been broken for 3 months devel/callgrind||2010-01-18|Has expired: Included in devel/valgrind devel/florist||2010-01-18|Has expired: has been broken for 3 months graphics/gephex||2010-01-18|Has expired: has been broken for 3 months graphics/irit||2010-01-18|Has expired: has been broken for 3 months graphics/pixieplus||2010-01-18|Has expired: has been broken for 6 months japanese/expect||2010-01-18|Has expired: has been broken for 3 months lang/pnetc||2010-01-18|Has expired: has been broken for 5 months mail/libnewmail||2010-01-18|Has expired: has been broken for 3 months net-mgmt/flowscan||2010-01-18|Has expired: has been broken for 5 months net/astmanproxy||2010-01-18|Has expired: has been broken for 3 months palm/prc-tools||2010-01-18|Has expired: has been broken for 4 months print/latex-msc||2010-01-18|Has expired: has been broken for 3 months science/xloops-ginac||2010-01-18|Has expired: has been broken for 3 months shells/bush||2010-01-18|Has expired: has been broken for 3 months textproc/iiimf-gnome-im-switcher||2010-01-18|Has expired: has been broken for 4 months textproc/iiimf-gtk||2010-01-18|Has expired: has been broken for 3 months x11-toolkits/gtkada-devel||2010-01-18|Has expired: has been broken for 3 months x11-wm/ion-2||2010-01-18|Has expired: has been broken for 4 months databases/pear-Doctrine2||2010-01-20|Removed audio/dino||2010-01-20|Has expired: has been broken for 7 months devel/asis-gpl||2010-01-20|Has expired: has been broken for 3 months devel/radrails||2010-01-20|Has expired: has been broken for 3 months devel/rubygem-rtags||2010-01-20|Has expired: has been broken for 5 months games/hattrickorganizer||2010-01-20|Has expired: Has been broken for a while games/laughingman||2010-01-20|Has expired: has been broken for 3 months devel/gdb53||2010-01-20|Has expired: has been broken for 3 months lang/ccscript||2010-01-20|Has expired: has been broken for 4 months lang/gnat-glade||2010-01-20|Has expired: has been broken for 3 months lang/xsb||2010-01-20|Has expired: has been broken for 6 months multimedia/nmm||2010-01-20|Has expired: has been broken for 3 months textproc/bidiv||2010-01-20|Has expired: has been broken for 3 months textproc/xmlada-gps||2010-01-20|Has expired: has been broken for 3 months net/mugshot||2010-01-23|No longer working, Mastersite disappeared lang/gnat-gcc41|lang/gnat-gcc44|2010-01-24|Superseded by newer upstream versions x11-toolkits/gtkada-gcc||2010-01-24|Not really maintained for a while and depended on lang/gnat-gcc41 which is gone x11-toolkits/gtkada-gps||2010-01-28|Has expired: has been broken for 3 months x11-fm/velocity||2010-01-28|Has expired: has been broken for 7 months x11-drivers/xf86-video-nsc||2010-01-28|Has expired: has been broken for 5 months security/shibboleth-sp||2010-01-28|Has expired: has been broken for 3 months www/pecl-pecl_http|www/pecl-http|2010-01-31|Duplicate ports chinese/stardict2-dict-zh_CN||2010-01-31|Please use chinese/stardict-dict-zh_CN math/octave-forge-ann||2010-02-02|Has expired: has been broken for 3 months math/octave-forge-fixed||2010-02-02|Has expired: has been broken for 3 months math/octave-forge-ftp||2010-02-02|Has expired: has been broken for 3 months math/octave-forge-graceplot||2010-02-02|Has expired: has been broken for 3 months math/octave-forge-triangular||2010-02-02|Has expired: has been broken for 3 months math/octave-forge-vrml||2010-02-02|Has expired: has been broken for 3 months sysutils/lugtools|sysutils/p5-Plugtools|2010-02-04|Superseded by sysutils/p5-Plugtools irc/conspire||2010-02-04|Upstream development abandoned x11-toolkits/swt31|x11-toolkits/swt|2010-02-07|Superseded by x11-toolkits/swt sysutils/smartmontools-devel|sysutils/smartmontools|2010-02-10|Removed, use sysutils/smartmontools instead ports-mgmt/portbrowser||2010-02-16|No longer maintained editors/openoffice.org-2-RC||2010-02-19|Removed net-p2p/rblibtorrent-devel|net-p2p/libtorrent-rasterbar-14|2010-02-21|No longer devel, recognize project name sysutils/munin-main|sysutils/munin-master|2010-02-22|Reorganized upstream multimedia/tsMuxeR|multimedia/linux-tsmuxer|2010-02-24|Port was given a better name japanese/stardict2-dict-ja||2010-02-25|Please use japanese/stardict-dict-ja net/mpd||2010-02-25|Has expired: obsoleted, unsupported port. Use net/mpd4, net/mpd5 instead textproc/xmlada-gcc||2010-02-27|Has expired: broken and practically unmaintained www/cheetah||2010-03-16|Has expired: broken, unmaintained, development ceased in 2001 mail/sylpheed2|mail/sylpheed3|2010-03-23|Update to new major version multimedia/gstreamer-schroedinger||2010-03-24|Removed multimedia/video4bsd-kmod|multimedia/cuse4bsd-kmod|2010-03-25|Renamed japanese/asterisk-sound|japanese/asterisk-sounds|2010-03-26|Fix port name typo x11-drivers/xf86-input-calcomp||2010-03-27|Unmaintained upstream. Notify x11 Maintainers if you have this device x11-drivers/xf86-input-digitaledge||2010-03-27|Unmaintained upstream. Notify x11 Maintainers if you have this device x11-drivers/xf86-input-dmc||2010-03-27|Unmaintained upstream. Notify x11 Maintainers if you have this device x11-drivers/xf86-input-dynapro||2010-03-27|Unmaintained upstream. Notify x11 Maintainers if you have this device x11-drivers/xf86-input-elo2300||2010-03-27|Unmaintained upstream. Notify x11 Maintainers if you have this device x11-drivers/xf86-input-jamstudio||2010-03-27|Unmaintained upstream. Notify x11 Maintainers if you have this device x11-drivers/xf86-input-magellan||2010-03-27|Unmaintained upstream. Notify x11 Maintainers if you have this device x11-drivers/xf86-input-microtouch||2010-03-27|Unmaintained upstream. Notify x11 Maintainers if you have this device x11-drivers/xf86-input-palmax||2010-03-27|Unmaintained upstream. Notify x11 Maintainers if you have this device x11-drivers/xf86-input-spaceorb||2010-03-27|Unmaintained upstream. Notify x11 Maintainers if you have this device x11-drivers/xf86-input-summa||2010-03-27|Unmaintained upstream. Notify x11 Maintainers if you have this device x11-drivers/xf86-input-tek4957||2010-03-27|Unmaintained upstream. Notify x11 Maintainers if you have this device audio/ym2wav|audio/stymulator|2010-03-27|ym2wav is now part of stymulator www/trac-webadmin||2010-03-30|Incorporated to www/trac audio/gstreamer-plugins-ivorbis|audio/gstreamer-plugins-vorbis|2010-03-30|ivorbis plugin got merged into the vorbis plugin math/octave-forge-arpack||2010-04-02|Incorporated to math/octave-forge www/p5-Plack-Request||2010-04-03|Incorporated to www/p5-Plack net-im/pidgin-birthday_reminder|net-im/pidgin-birthday-reminder|2010-04-05|Project was renamed misc/proj4|graphics/proj|2010-04-05|Replaced sysutils/phplogcon|sysutils/loganalyzer|2010-04-05|Project was renamed databases/php5-dbase||2010-04-09|Removed from core php devel/php5-ncurses||2010-04-09|Removed from core php devel/php5-pcre|lang/php5|2010-04-09|Bundled in core php devel/php5-spl|lang/php5|2010-04-09|Bundled in core php graphics/php5-ming||2010-04-09|Removed from core php security/php5-mhash|security/php5-hash|2010-04-09|Wrapper in hash extension databases/php5-oci8||2010-04-11|Doesn't support Oracle8 client library databases/php5-pdo_oci||2010-04-11|Doesn't support Oracle8 client library sysutils/rc_subr||2010-04-16|No longer needed math/libgmp4|math/gmp|2010-04-19|Switch to newer performance release irc/dircproxy-devel||2010-04-19|Removed security/krb5-17||2010-04-25|Deleted: no longer builds with new OpenSSL 1.0; security/krb5 now contains 1.8.1 www/blogd|www/ephemera|2010-04-26|Port renamed audio/py-flac||2010-05-02|Has expired: has been marked IGNORE for past 24 months databases/mysql-connector-java50||2010-05-02|Has expired: Old version: please use databases/mysql-connector-java instead databases/p5-DBIx-Class-HTML-FormFu||2010-05-02|Has expired: This module is obsoleted by www/p5-HTML-FormFu-Model-DBIC devel/py-rbtree||2010-05-02|Has expired: does not build with new pyrex and not actively maintained devel/tavrasm||2010-05-02|Has expired: No longer maintained, use devel/avra instead mail/postfix23||2010-05-02|Has expired: No longer maintained by upstream developer misc/ezload||2010-05-02|Has expired: does not build with new USB stack in 8-STABLE misc/gkrellmbgchg||2010-05-02|Has expired: use misc/gkrellmbgchg2 multimedia/kbtv||2010-05-02|Has expired: no longer under development by author net/plb||2010-05-02|Has expired: broken; abandoned by author; use net/relayd or www/nginx instead security/vpnd||2010-05-02|Has expired: This software is no longer developed textproc/isearch||2010-05-02|Has expired: abandoned upstream, uses an obsolete version of GCC, not used by any other port www/caudium12||2010-05-02|Has expired: No longer maintained upstream, please switch to www/caudium14 www/p5-Catalyst-Plugin-Cache-FileCache||2010-05-02|Has expired: Deprecated by module author in favor of www/p5-Catalyst-Plugin-Cache accessibility/gir-repository-atk|accessibility/atk|2010-05-10|Now installed by accessibility/atk multimedia/totem-xine|multimedia/totem|2010-05-10|Totem xine backend is dead for a while www/gir-repository-webkit|www/webkit-gtk2|2010-05-10|Now installed by www/webkit-gtk2 x11-toolkits/gir-repository-gtk20|x11-toolkits/gtk20|2010-05-10|Now installed by x11-toolkits/gtk20 x11-toolkits/gir-repository-libwnck|x11-toolkits/libwnck|2010-05-10|Now installed by x11-toolkits/libwnck x11-toolkits/gir-repository-pango|x11-toolkits/pango|2010-05-10|Now installed by x11-toolkits/pango x11/gir-repository-gnome-menus|x11/gnome-menus|2010-05-10|Now installed by x11/gnome-menus x11/kdelibs4-experimental|x11/kdelibs4|2010-05-11|Now integrated to x11/kdelibs4 www/mod_extract_forwarded2||2010-05-12|Use www/mod_extract_forwarded instead misc/ldconfig_compat||2010-05-14|Supported releases don't need the port anymore devel/nx||2010-05-14|Remove due math/py-networkx be the same port and with more appropriated name math/libranlib|math/librandlib|2010-05-17|Project renamed print/hplip3|print/hplip|2010-05-17|hplip port updated to 3.X version emulators/sdlmame|emulators/mame|2010-05-17|SDL port has been integrated into mainstream devel/apr|devel/apr1|2010-05-18|Renamed to devel/apr1 science/pyNN|science/pynn|2010-05-19|Rename to science/pynn databases/postgresql-contrib|databases/postgresql82-contrib|2010-05-20|Use databases/postgresqlNN-contrib, select version to match your PostgreSQL server lang/yorick-doc||2010-05-20|Has expired: up-to-date docs are included in the lang/yorick port devel/perforce|devel/p4|2010-05-20|Split into multiple ports net/dgd-net||2010-05-24|Has expired: all network functionality is included in net/dgd archivers/hs-zip-archive-ghc|archivers/hs-zip-archive|2010-05-24|Renamed: No need for suffix devel/hs-binary-ghc|devel/hs-binary|2010-05-24|Renamed: No need for suffix devel/darcs|devel/hs-darcs|2010-05-24|Renamed: It has become a hackage transcript devel/hs-language-c-ghc|devel/hs-language-c|2010-05-24|Renamed: No need for suffix devel/hs-lazysmallcheck-ghc|devel/hs-lazysmallcheck|2010-05-24|Renamed: No need for suffix devel/hs-pcre-light-ghc|devel/hs-pcre-light|2010-05-24|Renamed: No need for suffix devel/hs-utf8-string-ghc|devel/hs-utf8-string|2010-05-24|Renamed: No need for suffix graphics/hs-HGL-ghc|graphics/hs-HGL|2010-05-24|Renamed: No need for suffix ports-mgmt/porte|ports-mgmt/hs-porte|2010-05-24|Renamed: It has become a hackage transcript security/hs-digest-ghc|security/hs-digest|2010-05-24|Renamed: No need for suffix textproc/hs-haxml|textproc/hs-HaXml|2010-05-24|Renamed: Brought in sync with HackageDB textproc/hs-highlighting-kate-ghc|textproc/hs-highlighting-kate|2010-05-24|Renamed: No need for suffix textproc/hs-polyparse-ghc|textproc/hs-polyparse|2010-05-24|Renamed: No need for suffix textproc/pandoc|textproc/hs-pandoc|2010-05-24|Renamed: It has become a Cabal transcript x11/hs-x11-ghc|x11/hs-X11|2010-05-24|Renamed: Brought in sync with HackageDB and no need for suffix x11/hs-x11-xft-ghc|x11/hs-X11-xft|2010-05-24|Renamed: Brought in sync with HackageDB and no need for suffix x11/xmobar|x11/hs-xmobar|2010-05-24|Renamed: It has become a hackage transcript x11-toolkits/hs-OpenGLRaw-ghc|x11-toolkits/hs-OpenGLRaw|2010-05-24|Renamed: No need for suffix x11-toolkits/hs-GLURaw-ghc|x11-toolkits/hs-GLURaw|2010-05-24|Renamed: No need for suffix x11-toolkits/hs-opengl-ghc|x11-toolkits/hs-OpenGL|2010-05-24|Renamed: Brought in sync with HackageDB and no need for suffix x11-toolkits/hs-glut-ghc|x11-toolkits/hs-GLUT|2010-05-24|Renamed: Brought in sync with HackageDB and no need for suffix x11-wm/xmonad|x11-wm/hs-xmonad|2010-05-24|Renamed: It has become a Cabal transcript x11-wm/xmonad-contrib|x11-wm/hs-xmonad-contrib|2010-05-24|Renamed: It has become a Cabal transcript devel/ruby-game|devel/rubygem-rubygame|2010-05-24|Use devel/rubygem-rubygame instead devel/py-ro||2010-05-25|Use devel/py-pyro instead devel/runawk|lang/runawk|2010-05-31|Port duplicate with lang/runawk misc/ipod-sharp|audio/ipod-sharp|2010-06-02|Fix category lang/pike72|lang/pike76|2010-06-02|Has expired: Please use pike76 or pike78 lang/pexts||2010-06-02|Depends on expired port lang/pike72 databases/ptop||2010-06-04|Broken with no update from maintainer or upstream deskutils/dolphin-plugins-mplayerthumbs||2010-06-05|No longer supported by upstream irc/p5-IRC|irc/p5-Bot-BasicBot|2010-06-07|Has been deceased for over 5 years emulators/linux_base-gentoo-stage1||2010-06-08|Expired: please use emulators/linux_base-gentoo-stage3 emulators/linux_dist-gentoo-stage1||2010-06-08|Expired: please use emulators/linux_dist-gentoo-stage3 www/weave|www/firefox-sync|2010-06-09|Project was renamed misc/freedialog||2010-06-10|Removed, has been in base for a decade print/lyx15||2010-06-14|Removed, print/lyx has been updated to the latest version sysutils/tinybsd||2010-06-18|Incorporated into base system long ago www/mythweb|www/mythplugin-mythweb|2010-06-21|Renamed: Common prefix for all MythTV plugins www/firefox3|www/firefox35|2010-06-23|Upstream support dropped www/firefox3-i18n|www/firefox35-i18n|2010-06-23|Upstream support dropped security/krb4||2010-06-26|Security vulnerability and no longer developed www/linux-mozilla|www/linux-seamonkey|2010-06-27|Security vulnerabilities and abandoned upstream since 2006 security/audit||2010-07-01|Development has been discontinued net/isc-dhcp30-client|net/isc-dhcp31-client|2010-07-09|Has expired: deprecated upstream since March 2009 net/isc-dhcp30-relay|net/isc-dhcp31-relay|2010-07-09|Has expired: deprecated upstream since March 2009 net/isc-dhcp30-server|net/isc-dhcp31-server|2010-07-09|Has expired: deprecated upstream since March 2009 net/nss_ldapd|net/nss-pam-ldapd|2010-07-16|Project was renamed sysutils/bacula-client-devel||2010-07-16|Removed sysutils/bacula-server-devel||2010-07-16|Removed java/eclipse-v4all||2010-07-16|Not useful with Eclipse 3.x irc/kvirc-devel||2010-07-17|irc/kvirc has been updated to the latest version www/p5-Plack-Server-AnyEvent||2010-07-19|Use www/p5-Twiggy instead science/qelectrotech|cad/qelectrotech|2010-07-21|Fix category mail/squirrelmail-compatibility-plugin1|mail/squirrelmail-compatibility-plugin|2010-07-21|Has expired: use mail/squirrelmail-compatibility-plugin mail/squirrelmail-newuser_wiz-plugin|mail/squirrelmail-askuserinfo-plugin|2010-07-21|Has expired: use mail/squirrelmail-askuserinfo-plugin textproc/mini-xml|textproc/mxml|2010-07-25|Duplicate port net/gir-repository-avahi|net/avahi-app|2010-07-25|Handled by net/avahi-app now www/neonpp||2010-07-30|Does not build with neon 0.28 and above www/neon28|www/neon29|2010-07-30|Replaced by neon 0.29.x sysutils/aaccli||2010-08-03|Has expired: see sysutils/arcconf instead, no longer maintained by Adaptec mail/moztraybiff|mail/mail-notification|2010-08-03|Depends on obsolete Thunderbird 2.0 deskutils/lightning-xpi|deskutils/lightning|2010-08-03|Depends on obsolete Thunderbird 2.0 sysutils/zfSnap|sysutils/zfsnap|2010-08-03|Change name to lower case mail/lightning|deskutils/lightning|2010-08-03|Upstream development discontinued devel/py_otp_interface|devel/py-interface|2010-08-06|Duplicate py-interface port has better distutils handling www/mplayer-plugin|www/gecko-mediaplayer|2010-08-08|Upstream support dropped lang/plt-scheme|lang/racket|2010-08-08|Upstream development discontinued emulators/sdlmess|emulators/mess|2010-08-08|SDL port has been integrated into mainstream security/libassuan-1||2010-08-08|This is an ex-library (Superseded by security/libassuan, but not compatible) www/mod_webapp||2010-08-08|Removed net/p5-IO-INET6|net/p5-IO-Socket-INET6|2010-08-09|Renamed net-p2p/ktorrent-devel||2010-08-11|Obsoleted: please use net-p2p/ktorrent2 or net-p2p/ktorrent multimedia/mpeg4ip-libmp4v2|multimedia/mp4v2|2010-08-11|Superseded by multimedia/mp4v2 lang/ifc7||2010-08-12|Distfile no longer available multimedia/kaffeine-devel|multimedia/kaffeine|2010-08-14|New non-development version www/peacock||2010-08-17|Has runtime errors, upstream development discontinued www/gtkhtml38||2010-08-17|Removed, because there are no more users of this library security/isolate||2010-08-17|Security vulnerability www/wordpress-mu|www/wordpress|2010-08-19|Multiuser support was incorporate in the upstream version archivers/py-tarfile||2010-08-21|Has expired: all development activity in this port has been merged into mainline Python after 2.4 www/rssdler|www/py-rssdler|2010-08-21|Rename to consistency with other Python ports www/mod_webobjects||2010-08-23|Broken for 6+ months, unmaintained www/woadaptor||2010-08-23|Broken for 6+ months, unmaintained www/woadaptor-cgi||2010-08-23|Broken for 6+ months, unmaintained x11-toolkits/ruby-fox12||2010-08-23|Removed x11-toolkits/fxscintilla-fox12||2010-08-23|Removed x11-toolkits/fox12||2010-08-23|Has expired: Unsupported, please use x11-toolkits/fox14 or x11-toolkits/fox16 instead editors/mondrian||2010-08-23|Removed devel/freeride||2010-08-23|Removed devel/freebase||2010-08-23|Removed x11-themes/kde4-windeco-aurorae||2010-08-23|Integrated into x11/kdebase4-workspace x11-toolkits/fxscintilla-fox14||2010-08-23|Removed net/tintin++-devel|net/tintin++|2010-08-24|net/tintin++-devel is no longer devel, merged back to net/tintin++ audio/gmm|audio/gogglesmm|2010-08-24|Project was renamed irc/irssi-xmpp-devel||2010-08-25|Devel is unmaintained and older than stable www/lighttpd-mysqlauth|www/lighttpd|2010-08-28|Integrated into www/lighttpd games/jfduke3d||2010-08-28|Development ceased; see games/eduke32 for alternative www/dotproject-devel||2010-08-30|Older than stable port and unmaintained www/dokuwiki-devel||2010-08-30|Older than stable port and unmaintained www/linux-seamonkey-devel||2010-08-30|Older than stable port and unmaintained chinese/gcin-devel||2010-08-31|Older than stable port, broken and unmaintained graphics/xfractint-devel||2010-08-31|Older than stable port and unmaintained misc/kcd-devel||2010-08-31|Older than stable port and unmaintained sysutils/logtool-devel||2010-08-31|Older than stable port and unmaintained textproc/smartdoc-devel||2010-08-31|Older than stable port and unmaintained comms/spandsp-devel5||2010-08-31|Older than stable port and unmaintained french/pluxml-devel||2010-08-31|Stable was removed 2 years ago, doesn't make sense to keep -devel graphics/lphoto||2010-08-31|Has expired: broken mail/ngmp||2010-08-31|Has expired: does not compile and no longer supported by upstream multimedia/libdvdnav-mplayer||2010-09-02|Removed in favor of updated multimedia/libdvdnav lang/gcc43|lang/gcc44|2010-09-04|Superseded by gcc44 or gcc45 databases/sybase-ocsd||2010-09-04|Distfile(s) no longer available editors/staroffice5||2010-09-04|Distfile(s) no longer available editors/staroffice52||2010-09-04|Distfile(s) no longer available editors/staroffice60||2010-09-04|Distfile(s) no longer available editors/staroffice70||2010-09-04|Distfile(s) no longer available emulators/linux-vmware-toolbox2||2010-09-04|Distfile(s) no longer available french/staroffice52||2010-09-04|Distfile(s) no longer available german/staroffice5||2010-09-04|Distfile(s) no longer available german/staroffice52||2010-09-04|Distfile(s) no longer available german/staroffice70||2010-09-04|Distfile(s) no longer available java/simplicity||2010-09-04|Distfile(s) no longer available lang/icc7||2010-09-04|Distfile(s) no longer available portuguese/staroffice52||2010-09-04|Distfile(s) no longer available sysutils/linux-acu||2010-09-04|Distfile(s) no longer available lang/ficl-devel|lang/ficl|2010-09-07|Moved to lang/ficl since it's a stable version games/abridge||2010-09-07|Broken, abandoned upstream deskutils/linux-sunbird|deskutils/lightning|2010-09-07|Upstream development discontinued deskutils/sunbird|deskutils/lightning|2010-09-07|Upstream development discontinued deskutils/sunbird-i18n||2010-09-07|Upstream development discontinued audio/audacious-crossfade||2010-09-08|Broken for 6+ months, unmaintained audio/ecamegapedal||2010-09-08|Has expired: Abandoned since 2004, please use audio/jack-rack or audio/creox instead comms/asmodem||2010-09-08|Broken for 6+ months, unmaintained comms/ltmdm||2010-09-08|Broken for 6+ months, unmaintained comms/yawmppp||2010-09-08|Broken for 6+ months, unmaintained devel/p5-ORBit||2010-09-08|Broken for 6+ months, unmaintained emulators/p-interp||2010-09-08|Broken for 6+ months, unmaintained graphics/visionegg||2010-09-08|Broken for 6+ months, unmaintained japanese/okphone||2010-09-08|Broken for 6+ months, unmaintained java/openjit||2010-09-08|Broken for 6+ months, unmaintained multimedia/xmps-win32-plugin||2010-09-08|Broken for 6+ months, unmaintained net-mgmt/tknetmon||2010-09-08|Broken for 6+ months, unmaintained net/arpd||2010-09-08|Broken for 6+ months, unmaintained net/vomit||2010-09-08|Broken for 6+ months, unmaintained sysutils/xwipower||2010-09-08|Broken for 6+ months, unmaintained www/lws||2010-09-08|Broken for 6+ months, unmaintained net-p2p/javadc||2010-09-08|Has expired: is ancient, unmaintained, works only with JDK 1.3, no master site net/pathchar||2010-09-08|Has expired: has been broken for 2+ years, no sources available www/linux-nvu|www/kompozer|2010-09-08|Has expired: NVU 1.0 last release June 2005, use www/kompozer instead print/cupsddk||2010-09-09|Now part of print/cups-base databases/mongodb-devel||2010-09-11|Older than databases/mongodb japanese/tdiary-devel||2010-09-12|Removed www/tdiary-devel||2010-09-12|Removed multimedia/playd2|multimedia/playd|2010-09-13|Has expired: Use multimedia/playd instead mail/mailscanner-devel|mail/mailscanner|2010-09-14|Removed, mail/mailscanner is newer databases/sqlite-ext-inet||2010-09-14|Has expired: Please install databases/sqlite-ext-mobigroup instead editors/koffice-kde4-l10n-fy||2010-09-14|Has expired editors/koffice-kde4-l10n-hne||2010-09-14|Has expired graphics/xaralx-devel||2010-09-14|Has expired: Does not compile with png-1.4 and latest version is from Aug 2006 graphics/xaralx||2010-09-14|Has expired: Does not compile with png-1.4 and latest version is from Aug 2006 misc/kde4-l10n-bn_IN||2010-09-14|Has expired misc/kde4-l10n-hne||2010-09-14|Has expired misc/kde4-l10n-ku||2010-09-14|Has expired multimedia/vlconwooztalk||2010-09-14|Has expired: wooztalk website not responding as of 20100731 net-im/wooztalk||2010-09-14|Has expired: wooztalk website not responding as of 20100731 russian/php_doc||2010-09-14|Has expired: Support for the Russian translation of the PHP manual seems to have stopped sysutils/ipmi-kmod||2010-09-14|Has expired: in base system since 6.2-RELEASE www/xpi-dailymotiononwooztalk||2010-09-14|Has expired: wooztalk website not responding as of 20100731 www/xpi-deezeronwooztalk||2010-09-14|Has expired: wooztalk website not responding as of 20100731 www/xpi-firefoxonwooztalk||2010-09-14|Has expired: wooztalk website not responding as of 20100731 www/xpi-googlevideoonwooztalk||2010-09-14|Has expired: wooztalk website not responding as of 20100731 www/xpi-imeemonwooztalk||2010-09-14|Has expired: wooztalk website not responding as of 20100731 www/xpi-jiwaonwooztalk||2010-09-14|Has expired: wooztalk website not responding as of 20100731 www/xpi-lastfmonwooztalk||2010-09-14|Has expired: wooztalk website not responding as of 20100731 www/xpi-vimeoonwooztalk||2010-09-14|Has expired: wooztalk website not responding as of 20100731 www/xpi-youtubeonwooztalk||2010-09-14|Has expired: wooztalk website not responding as of 20100731 x11/chameleon||2010-09-14|Has expired: No longer under development, master site disappeared years ago net/csup||2010-09-14|Has expired: is already included in base system of all supported releases textproc/py-Pootle||2010-09-15|Removed devel/autoconf262|devel/autoconf267|2010-09-15|Migration to autoconf-2.67 editors/vim6||2010-09-17|Has expired: Outdated, superseded by editors/vim7 and has multiple security issues editors/vim6+ruby||2010-09-17|Has expired: Outdated, superseded by editors/vim7 and has multiple security issues sysutils/cdrtools-cjk|sysutils/cdrtools|2010-09-17|Obsoleted by iconv support in mainstream kit lang/pfe-devel|lang/pfe|2010-09-20|Moved to lang/pfe since it's a stable version archivers/p5-Compress-Zlib|archivers/p5-IO-Compress|2010-09-21|Replaced by archivers/p5-IO-Compress archivers/p5-IO-Compress-Base|archivers/p5-IO-Compress|2010-09-21|Replaced by archivers/p5-IO-Compress archivers/p5-IO-Compress-Bzip2|archivers/p5-IO-Compress|2010-09-21|Replaced by archivers/p5-IO-Compress archivers/p5-IO-Compress-Zlib|archivers/p5-IO-Compress|2010-09-21|Replaced by archivers/p5-IO-Compress audio/linux-nerodigitalaudio|audio/linux-neroaaccodec|2010-09-22|Project was renamed devel/automake16||2010-09-22|Outdated, no longer required by any port devel/automake17||2010-09-22|Outdated, was not being used by any port devel/automake18||2010-09-22|Outdated, ports (2) migrated to automake19 devel/automake15||2010-09-23|Outdated, ports migrated to automake19 www/xpi-gbutts|www/xpi-google_shortcuts|2010-09-28|Plugin was renamed mail/sympa-elixus||2010-09-28|Has expired: no longer maintained, no longer fetchable, no longer builds with sympa net-mgmt/zabbix16-server||2010-10-01|Has expired: Development has ceased. Please upgrade to Zabbix 1.8 net-mgmt/zabbix16-agent||2010-10-01|Has expired: Development has ceased. Please upgrade to Zabbix 1.8 net-mgmt/zabbix16-frontend||2010-10-01|Has expired: Development has ceased. Please upgrade to Zabbix 1.8 net-mgmt/zabbix16-proxy||2010-10-01|Has expired: Development has ceased. Please upgrade to Zabbix 1.8 net-p2p/mutella||2010-10-01|Has expired: No longer under active development www/xpi-hit-a-hint||2010-10-01|Has expired: Development has been ceased and not compatible with Firefox > 2 www/xpi-preferential||2010-10-01|Has expired: Development has been ceased and not compatible with Firefox > 2 www/xpi-statusbarclock||2010-10-01|Has expired: Development has been ceased and not compatible with Firefox > 2 devel/cego-base|devel/lfc|2010-10-02|Project was renamed devel/cego-xml|devel/lfcxml|2010-10-02|Project was renamed www/p5-WWW-Pastebin-RafbNet-Create||2010-10-02|http://rafb.net service is dead games/daimonin-client|games/daimonin|2010-10-04|Renamed sysutils/rsyslog55|sysutils/rsyslog5|2010-10-05|Renamed sysutils/rsyslog55-dbi|sysutils/rsyslog5-dbi|2010-10-05|Renamed sysutils/rsyslog55-gnutls|sysutils/rsyslog5-gnutls|2010-10-05|Renamed sysutils/rsyslog55-gssapi|sysutils/rsyslog5-gssapi|2010-10-05|Renamed sysutils/rsyslog55-mysql|sysutils/rsyslog5-mysql|2010-10-05|Renamed sysutils/rsyslog55-pgsql|sysutils/rsyslog5-pgsql|2010-10-05|Renamed sysutils/rsyslog55-relp|sysutils/rsyslog5-relp|2010-10-05|Renamed sysutils/rsyslog55-rfc3195|sysutils/rsyslog5-rfc3195|2010-10-05|Renamed sysutils/rsyslog55-snmpl|sysutils/rsyslog5-snmp|2010-10-05|Renamed net-p2p/amule2|net-p2p/amule|2010-10-05|Split to -devel and non-devel ports devel/automake19||2010-10-07|No longer required by any port devel/automake110||2010-10-07|No longer required by any port japanese/p5-jcode.pl|japanese/jcode.pl|2010-10-10|Duplicate port www/p5-Plack-Server-ServerSimple|www/p5-Plack|2010-10-11|Included in p5-Plack now www/trac-multirepos||2010-10-11|Has expired: Multiple repositories support has been merged in trunk, please use Trac 0.12+ (www/trac) instead devel/p5-P4||2010-10-14|Has expired: Depends of p5-P4-Client, which is DEPRECATED devel/p5-P4-Client||2010-10-14|Has expired: has been broken for 11 months net-p2p/btpeer||2010-10-14|Has expired: Does not build with net/Sockets and is unmaintained net-mgmt/net-snmp4||2010-10-14|Has expired: Use net-mgmt/net-snmp port instead net/gkrellm_snmp||2010-10-14|Has expired: Depends of net-snmp4, that is deprecated also and will be removed soon net/Sockets-devel||2010-10-14|Has expired: Older than net/Sockets and unmaintained devel/clang|lang/clang|2010-10-14|Compilers typically live in the lang category security/ssh2||2010-10-15|Has expired: abandoned upstream security/ssh2-nox11||2010-10-15|Has expired: abandoned upstream devel/autoconf267|devel/autoconf268|2010-10-16|Bump net/samba3||2010-10-18|Has expired: Unsupported by the upstream. Please, consider to upgrade net/samba32||2010-10-18|Has expired: Unsupported by the upstream. Please, consider to upgrade net/samba33||2010-10-18|Has expired: Unsupported by the upstream. Please, consider to upgrade japanese/samba3||2010-10-18|Has expired: Unsupported by the upstream. Please, consider to upgrade net/py-samba||2010-10-18|Has expired: Unsupported by the upstream. Please, consider to upgrade security/samba-vscan||2010-10-18|Removed www/firefox3-devel|www/firefox|2010-10-24|Upstream development focuses on Firefox 4.0 editors/vim5||2010-10-26|Has expired: Outdated, superseded by editors/vim7 and has security issues sysutils/sfdisk||2010-10-27|Has expired: All supported FreeBSD versions now have sade, sfdisk 0.2 is outdated sysutils/synergy-plus|sysutils/synergy|2010-11-01|Synergy+ and Synergy have merged ftp/kwebget||2010-11-04|Has expired: Development has ceased multimedia/clive-utils||2010-11-04|Has expired: development has ceased; use multimedia/umph instead ports-mgmt/barry||2010-11-04|Has expired: Development has ceased www/wb0||2010-11-04|Has expired: Development has ceased x11/e17-module-bling|x11-wm/e17-module-bling|2010-11-07|Fix category x11/e17-module-calendar|x11-wm/e17-module-calendar|2010-11-07|Fix category x11/e17-module-cpu|x11-wm/e17-module-cpu|2010-11-07|Fix category x11/e17-module-deskshow|x11-wm/e17-module-deskshow|2010-11-07|Fix category x11/e17-module-flame|x11-wm/e17-module-flame|2010-11-07|Fix category x11/e17-module-language|x11-wm/e17-module-language|2010-11-07|Fix category x11/e17-module-mail|x11-wm/e17-module-mail|2010-11-07|Fix category x11/e17-module-mem|x11-wm/e17-module-mem|2010-11-07|Fix category x11/e17-module-mixer|x11-wm/e17-module-mixer|2010-11-07|Fix category x11/e17-module-moon|x11-wm/e17-module-moon|2010-11-07|Fix category x11/e17-module-rain|x11-wm/e17-module-rain|2010-11-07|Fix category x11/e17-module-screenshot|x11-wm/e17-module-screenshot|2010-11-07|Fix category x11/e17-module-slideshow|x11-wm/e17-module-slideshow|2010-11-07|Fix category x11/e17-module-snow|x11-wm/e17-module-snow|2010-11-07|Fix category x11/e17-module-uptime|x11-wm/e17-module-uptime|2010-11-07|Fix category x11/e17-module-weather|x11-wm/e17-module-weather|2010-11-07|Fix category x11/e17-module-winselector|x11-wm/e17-module-winselector|2010-11-07|Fix category devel/libisc||2010-11-08|Has expired: Unlikely to be used emulators/vmware-guestd3||2010-11-08|Has expired: Depends of misc/compat3x, that is deprecated and set to be removed emulators/vmware-tools3||2010-11-08|Has expired: Depends of misc/compat3x, that is deprecated and set to be removed misc/compat3x||2010-11-08|Has expired: Only FreeBSD 6.4+ are supported in ports misc/bidwatcher||2010-11-08|Has expired: Obsoleted by JBidwatcher and changes at http://ebay.com security/vscan||2010-11-08|Has expired: Depends of misc/compat3x, that is deprecated and set to be removed www/ssserver||2010-11-08|Has expired: Depends of misc/compat3x, that is deprecated and set to be removed graphics/qtpfsgui|graphics/luminance|2010-11-12|Project has been renamed devel/gir-repository-gconf2|devel/gconf2|2010-11-20|Merged into gconf2 x11-fm/gir-repository-nautilus|x11-fm/nautilus|2010-11-20|Merged into nautilus devel/gir-repository-libsoup|devel/libsoup|2010-11-20|Merged into libsoup x11-toolkits/gir-repository-gtksourceview2|x11-toolkits/gtksourceview2|2010-11-20|Merged into gtksourceview2 security/gir-repository-gnome-keyring||2010-11-20|Not buildable devel/gir-repository-dbus|devel/gobject-introspection|2010-11-20|Merged into gobject-introspection net/asterisk-addons|net/asterisk14-addons|2010-11-22|Renamed via repocopy devel/gdb6|devel/gdb66|2010-11-24|Directory renamed net-p2p/eiskaltdc|net-p2p/eiskaltdcpp-qt|2010-11-26|GUI ports separated japanese/uim-canna|textproc/uim|2010-11-26|Integrated into textproc/uim japanese/uim-prime|textproc/uim|2010-11-26|Integrated into textproc/uim www/google_shortcuts|www/xpi-google_shortcuts|2010-11-26|Use www/xpi-google_shortcuts instead x11-toolkits/ruby-gtksourceview||2010-11-27|Removed misc/libpri-bristuff||2010-11-28|Superseded by asterisk 1.8 net/asterisk-bristuff||2010-11-28|Superseded by asterisk 1.8 www/p5-Mojo|www/p5-Mojolicious|2010-11-29|Project's distfile name has changed shells/bash-completion-classic|shells/bash-completion|2010-11-29|amd64 workaround no longer required devel/p5-usb|devel/p5-Device-USB|2010-11-29|Directory renamed www/phpwebgallery|www/piwigo|2010-11-29|Project renamed net/asterisk12||2010-11-30|EOL'ed upstream on 21 Nov 2010 net/asterisk12-app-ldap||2010-11-30|EOL'ed upstream on 21 Nov 2010 dns/bind9||2010-12-01|EOL - Update to dns/bind97 or dns/bind96 archivers/linux-par2cmdline||2010-12-04|Has expired: Native version available audio/bmp-musepack||2010-12-04|Has expired: does not build with audio/musepack audio/libmpcdec|audio/musepack|2010-12-04|Has expired: superseded by audio/musepack audio/py-musepack||2010-12-04|Has expired: does not build with audio/musepack chinese/chinput3||2010-12-04|Has expired: Development has ceased emulators/dynagen-devel||2010-12-04|Has expired: Please install emulators/dynagen instead net-p2p/gift-fasttrack||2010-12-04|Has expired: unmaintained upstream net-p2p/gift-gnutella||2010-12-04|Has expired: unmaintained upstream net-p2p/gift-openft||2010-12-04|Has expired: unmaintained upstream net-p2p/pyslsk||2010-12-04|Has expired: unmaintained upstream, use net-p2p/nicotine-plus security/pamsfs||2010-12-04|Has expired: SFS is dead, this project is dead, and site is gone www/p5-Catalyst-Plugin-CommandLine||2010-12-04|Has expired: The module is not needed anymore; with new Catalyst (at least 5.7014) it works out of the box devel/autoconf268|devel/autoconf|2010-12-08|Autotools cleanup devel/automake111|devel/automake|2010-12-08|Autotools cleanup devel/libtool22|devel/libtool|2010-12-08|Autotools cleanup devel/libltdl22|devel/libltdl|2010-12-08|Autotools cleanup devel/rubygem-image_science|graphics/rubygem-image_science|2010-12-11|Moved category emulators/mupen64plus-base|emulators/mupen64plus-core|2010-12-13|Port was renamed emulators/mupen64plus-sdlaudio|emulators/mupen64plus-audio-sdl|2010-12-13|Port was renamed emulators/mupen64plus-sdlinput|emulators/mupen64plus-input-sdl|2010-12-13|Port was renamed emulators/mupen64plus-rsp|emulators/mupen64plus-rsp-hle|2010-12-13|Port was renamed emulators/mupen64plus-rice|emulators/mupen64plus-video-rice|2010-12-13|Port was renamed emulators/mupen64plus-dummyaudio||2010-12-13|Port was removed, now it is obsolete emulators/mupen64plus-dummyvideo||2010-12-13|Port was removed, now it is obsolete emulators/mupen64plus-glide||2010-12-13|Port was removed, now it is obsolete emulators/mupen64plus-gln64||2010-12-13|Port was removed, now it is obsolete emulators/mupen64plus-input||2010-12-13|Port was removed, now it is obsolete misc/zaptel||2010-12-14|Superseded by misc/dahdi japanese/mozilla-jlp||2010-12-15|Has expired: Depends on obsolete port www/mozilla devel/icu2|devel/icu|2010-12-16|Removed: now obsolete and unused please use newer devel/icu instead devel/icu4|devel/icu|2010-12-17|Removed: devel/icu is now following 4.x version multimedia/flv2mpeg4||2010-12-23|Abandoned upstream databases/mysql55-scripts||2010-12-27|Merged in other mysql ports databases/p5-sqlrelay||2010-12-31|Has expired: broken and upstream disappeared devel/php-dbg2||2010-12-31|Has expired: No upstream support dns/fourcdns||2010-12-31|Has expired: upstream has disappeared emulators/win4bsd||2010-12-31|Has expired: Development has ceased and distfile is no longer available french/mozilla-flp||2010-12-31|Has expired: www/seamonkey port is deprecated. Consider using the www/firefox-i18n french/xtel||2010-12-31|Has expired: Minitel services will be discontinued at the end of 2010 ftp/ftpq||2010-12-31|Has expired: upstream has disappeared graphics/paintlib||2010-12-31|Has expired: does not compile with new tiff and no longer maintained upstream graphics/g3dviewer||2010-12-31|Has expired: does not build with gcc 4.2, upstream disappeared lang/scriba||2010-12-31|Has expired: Does not compile with gcc 4.2+, looks like abandonware math/rascal||2010-12-31|Has expired: Broken on every arch since 2008, looks like abandonware net-mgmt/nrg|net-mgmt/cacti|2010-12-31|Has expired: Project has vanished. Use cacti instead security/hostsentry||2010-12-31|Has expired: Project is dead sysutils/kcube||2010-12-31|Has expired: Project has vanished www/cybercalendar||2010-12-31|Has expired: has been unmaintained since 2001 and is unusable with dates after 2010 (see ports/150974) www/flock||2010-12-31|Has expired: Flock 3 moves from Firefox to Chromium www/linux-flock||2010-12-31|Has expired: Flock 3 moves from Firefox to Chromium x11-clocks/xtu||2010-12-31|Has expired: Looks like abandonware java/tya||2010-12-31|Has expired: looks like abandonware and does not compile with gcc4.2 net-p2p/qbittorrent-22|net-p2p/qbittorrent|2011-01-01|Old version no longer updated. Try net-p2p/qbittorrent dns/bind95||2011-01-01|Entered EOL 2010-09 - Update to dns/bind97 or dns/bind96 www/mozilla|www/seamonkey2|2011-01-01|Unmaintained upstream for years and has security issues security/lxnb||2011-01-02|Has expired: Development has ceased, mastersite disappeared x11-wm/lxsession-lite|x11-wm/lxsession|2011-01-02|Has expired: Superseded by x11-wm/lxsession audio/emphasis||2011-01-03|Has expired: abandoned upstream converters/ecore-txt||2011-01-03|Has expired: abandoned upstream deskutils/estickies||2011-01-03|Has expired: abandoned upstream devel/ecore-job||2011-01-03|Has expired: abandoned upstream devel/engrave||2011-01-03|Has expired: abandoned upstream devel/evfs||2011-01-03|Has expired: abandoned upstream devel/ruby-ecore||2011-01-03|Has expired: abandoned upstream graphics/exhibit||2011-01-03|Has expired: abandoned upstream graphics/epsilon||2011-01-03|Has expired: abandoned upstream graphics/esmart||2011-01-03|Has expired: abandoned upstream graphics/ruby-edje||2011-01-03|Has expired: abandoned upstream graphics/ruby-esmart||2011-01-03|Has expired: abandoned upstream graphics/ruby-evas||2011-01-03|Has expired: abandoned upstream graphics/ruby-redact||2011-01-03|Has expired: abandoned upstream multimedia/eclair||2011-01-03|Has expired: abandoned upstream security/phpmyid||2011-01-03|Has expired: Development has ceased sysutils/ecore-config||2011-01-03|Has expired: abandoned upstream sysutils/extrackt||2011-01-03|Has expired: abandoned upstream textproc/exml||2011-01-03|Has expired: abandoned upstream www/mod_accesscookie||2011-01-03|Has expired: upstream is gone www/mod_vdbh||2011-01-03|Has expired: upstream is gone www/mod_auth_any||2011-01-03|Has expired: upstream is gone www/mod_log_data||2011-01-03|Has expired: upstream is gone and will be unsupported by ASF when 2.4.0 is release, migrate to 2.2.x+ now x11-fm/entropyfm||2011-01-03|Has expired: abandoned upstream x11-themes/e17-splash-fortune||2011-01-03|Has expired: abandoned upstream x11-themes/e17-splash-shiny||2011-01-03|Has expired: abandoned upstream x11-themes/e17-splash-takara||2011-01-03|Has expired: abandoned upstream x11-themes/e17-theme-blue_eyed||2011-01-03|Has expired: abandoned upstream x11-themes/e17-theme-dali||2011-01-03|Has expired: abandoned upstream x11-themes/e17-theme-gant||2011-01-03|Has expired: abandoned upstream x11-themes/e17-theme-japan2007||2011-01-03|Has expired: abandoned upstream x11-themes/e17-theme-kor||2011-01-03|Has expired: abandoned upstream x11-themes/e17-theme-milky||2011-01-03|Has expired: abandoned upstream x11-themes/e17-theme-night_bling||2011-01-03|Has expired: abandoned upstream x11-themes/e17-theme-simply_white||2011-01-03|Has expired: abandoned upstream x11-themes/e17-splash-azul||2011-01-03|Has expired: abandoned upstream x11-themes/e17-splash-blue||2011-01-03|Has expired: abandoned upstream x11-themes/e17-splash-clean||2011-01-03|Has expired: abandoned upstream x11-themes/e17-splash-logo||2011-01-03|Has expired: abandoned upstream x11-toolkits/etk||2011-01-03|Has expired: abandoned upstream x11-toolkits/ewl||2011-01-03|Has expired: abandoned upstream x11-toolkits/enhance||2011-01-03|Has expired: abandoned upstream x11-wm/e17-module-bling||2011-01-03|Has expired: abandoned upstream x11-wm/e17-module-mixer||2011-01-03|Has expired: abandoned upstream x11-wm/e17-utils||2011-01-03|Has expired: abandoned upstream x11/elicit||2011-01-03|Has expired: abandoned upstream x11/enity||2011-01-03|Has expired: abandoned upstream x11/examine||2011-01-03|Has expired: abandoned upstream x11/ecore-desktop||2011-01-03|Has expired: abandoned upstream x11/enterminus||2011-01-03|Removed deskutils/gnome-pim||2011-01-03|Removed due to x11/libcapplet broke mail/pmail||2011-01-03|Removed due to x11/libcapplet broke mail/pygmy||2011-01-03|Removed due to x11/libcapplet broke math/scigraphica||2011-01-03|Removed due to x11/libcapplet broke net/geotrace||2011-01-03|Removed due to x11/libcapplet broke security/nofgpg||2011-01-03|Removed due to x11/libcapplet broke sysutils/gnome-control-center1||2011-01-03|Removed due to x11/libcapplet broke www/gtkhtml||2011-01-03|Removed due to x11/libcapplet broke x11/libcapplet||2011-01-03|Removed: broken and unmaintained upstream x11/wmmenu||2011-01-03|Removed due to x11/libcapplet broke x11-toolkits/py-gnome||2011-01-03|Removed due to x11/libcapplet broke www/glibwww||2011-01-04|Removed due to no port depend on it math/octave-forge-spanish|math/octave-forge-es|2011-01-13|Replaced by math/octave-forge-es devel/cvsnt||2011-01-15|Removed: abandoned upstream net-p2p/qbittorrent-23|net-p2p/qbittorrent|2011-01-24|Old, no longer updated. Try net-p2p/qbittorrent dns/staticcharge||2011-01-29|Has expired: abandoned by author shells/bash3|shells/bash|2011-01-29|Has expired: Use shells/bash or shells/bash-static instead shells/bash3-static|shells/bash-static|2011-01-29|Has expired: Use shells/bash or shells/bash-static instead audio/ecawave||2011-02-01|Has expired: has been broken for over one year mail/spamass-rules_du_jour||2011-02-01|Has expired: Use sa-update instead x11/accessx||2011-02-01|Has expired: Project abandoned, mastersite disappeared x11/kde3-apireference||2011-02-01|Has expired: outdated and obsolete misc/py-distutils||2011-02-02|Included in current Python versions databases/qt-ibase-plugin||2011-02-04|Has expired: Port is broken on all supported versions of FreeBSD devel/ace+tao||2011-02-04|Has expired: Outdated and does not compile on any supported version of FreeBSD graphics/ray++||2011-02-04|Has expired: Does not compile on supported versions of FreeBSD japanese/oleo||2011-02-04|Has expired: Does not compile on supported versions of FreeBSD lang/dylan||2011-02-04|Has expired: does not build multimedia/jahshaka||2011-02-04|Has expired: Does not compile on supported versions of FreeBSD audio/libjackasyn|audio/jack|2011-02-11|Has expired: development has ceased; try audio/jack instead audio/xmms-jackasyn|audio/xmms-jack|2011-02-11|Has expired: development has ceased; try audio/xmms-jack instead lang/p5-SQL-Tokenizer|textproc/p5-SQL-Tokenizer|2011-02-13|Moved to a more appropriate category misc/wanpipe||2011-02-14|Removed devel/root||2011-02-21|Has expired: Port does not build on supported versions of FreeBSD net/ztelnet||2011-02-21|Has expired: unfetchable print/kaspaliste||2011-02-21|Has expired: yes sysutils/perf||2011-02-21|Has expired: Does not build on supported versions of FreeBSD databases/redis1||2011-02-24|Removed devel/pmake||2011-02-24|Has expired: does not build on any supported version of FreeBSD net-p2p/linux-agsatellite||2011-02-24|Has expired: the whole service went to cloud databases/redis2||2011-02-25|Removed, use databases/redis instead textproc/py-expat||2011-02-25|Removed, part of Python since 2.5 devel/py-ctypes||2011-02-25|Removed, part of Python since 2.5 security/py-hashlib||2011-02-25|Removed, part of Python since 2.5 www/py-hashlib||2011-02-25|Removed, part of Python since 2.5 x11/gstreamer-plugins-vdpau|multimedia/gstreamer-plugins-vdpau|2011-02-25|Move to the multimedia category x11/gir-repository-babl|x11/babl|2011-02-25|Merged into babl net/gnet|net/gnet2|2011-02-27|No longer maintained or updated, try to use net/gnet2 www/py-turbodjango||2011-02-27|Removed, part of Python since 2.5 www/py-turbosetup||2011-02-27|Removed, part of Python since 2.5 textproc/py-csv||2011-02-27|Removed, part of Python since 2.5 devel/py-uuid||2011-02-27|Removed, part of Python since 2.5 graphics/libv3d||2011-02-28|Has expired: unmaintained and failed to build for months mbone/rat|audio/rat|2011-03-06|Changed category mbone/rat30|audio/rat30|2011-03-06|Changed category mbone/speak_freely|audio/speak_freely|2011-03-06|Changed category mbone/vat|audio/vat|2011-03-06|Changed category mbone/xspeakfree|audio/xspeakfree|2011-03-06|Changed category mbone/vic|multimedia/vic|2011-03-06|Changed category mbone/imm|net/imm|2011-03-06|Changed category mbone/mcl|net/mcl|2011-03-06|Changed category mbone/rqm|net/rqm|2011-03-06|Changed category mbone/rtptools|net/rtptools|2011-03-06|Changed category mbone/sdr|net/sdr|2011-03-06|Changed category mbone/udpcast|net/udpcast|2011-03-06|Changed category mbone/wb|net/wb|2011-03-06|Changed category lang/gnat-doc-html||2011-03-07|Unmaintained and obsolete lang/gnat-doc-info||2011-03-07|Unmaintained and obsolete lang/gnat-doc-ps||2011-03-07|Unmaintained and obsolete lang/gnat-doc-texi||2011-03-07|Unmaintained and obsolete lang/gnat-doc-txt||2011-03-07|Unmaintained and obsolete www/py-cherrypy-devel|www/py-cherrypy|2011-03-15|Removed, use www/py-cherrypy instead science/py-obspy.core|science/py-obspy-core|2011-03-16|Removed, use science/py-obspy-core instead devel/py-unit||2011-03-17|Unmaintained and obsolete, included in Python distribution since 2.1 lang/gnat-gcc42||2011-03-17|Removed unmaintained and obsolete lang/gnat-gcc43||2011-03-17|Removed unmaintained and obsolete lang/gnat-gcc44||2011-03-17|Removed unmaintained and obsolete games/wormux-devel||2011-03-17|Project was renamed games/etuxracer|games/etracer|2011-03-18|Removed it is a duplicate of games/etracer net/p5-Net-IP-Anonymous|net/p5-IP-Anonymous|2011-03-19|Move to a correct directory databases/db50||2011-03-21|Removed, use databases/db51 instead games/wormux|games/warmux|2011-03-21|Project was renamed irc/ircd-hybrid-ru|russian/ircd-hybrid|2011-03-27|Renamed devel/thunar-svn-plugin|devel/thunar-vcs-plugin|2011-03-27|Removed, use devel/thunar-vcs-plugin instead devel/id-utils|devel/idutils|2011-03-28|Project renamed russian/ircd-hybrid-ru|russian/ircd-hybrid|2011-03-30|Renamed java/netbeans3|java/netbeans|2011-03-31|Has expired: old, unmaintained, use java/netbeans instead java/netbeans4|java/netbeans|2011-03-31|Has expired: old, unmaintained, use java/netbeans instead java/netbeans5|java/netbeans|2011-03-31|Has expired: old, unmaintained, use java/netbeans instead textproc/rubygem-bzip2||2011-04-03|Removed accessibility/linux-f8-atk||2011-04-04|Has expired: End of Life since Jan 7, 2009 archivers/linux-f8-ucl||2011-04-04|Has expired: End of Life since Jan 7, 2009 archivers/linux-f8-upx||2011-04-04|Has expired: End of Life since Jan 7, 2009 audio/linux-f8-alsa-lib||2011-04-04|Has expired: End of Life since Jan 7, 2009 audio/linux-f8-arts||2011-04-04|Has expired: End of Life since Jan 7, 2009 audio/linux-f8-esound||2011-04-04|Has expired: End of Life since Jan 7, 2009 audio/linux-f8-freealut||2011-04-04|Has expired: End of Life since Jan 7, 2009 audio/linux-f8-libaudiofile||2011-04-04|Has expired: End of Life since Jan 7, 2009 audio/linux-f8-libogg||2011-04-04|Has expired: End of Life since Jan 7, 2009 audio/linux-f8-libvorbis||2011-04-04|Has expired: End of Life since Jan 7, 2009 audio/linux-f8-mikmod||2011-04-04|Has expired: End of Life since Jan 7, 2009 audio/linux-f8-nas-libs||2011-04-04|Has expired: End of Life since Jan 7, 2009 audio/linux-f8-openal||2011-04-04|Has expired: End of Life since Jan 7, 2009 audio/linux-f8-sdl_mixer||2011-04-04|Has expired: End of Life since Jan 7, 2009 databases/linux-f8-sqlite3||2011-04-04|Has expired: End of Life since Jan 7, 2009 databases/postgresql81-server||2011-04-04|Has expired: EOL; see http://wiki.postgresql.org/wiki/PostgreSQL_Release_Support_Policy databases/postgresql73-server||2011-04-04|Has expired: EOL; see http://wiki.postgresql.org/wiki/PostgreSQL_Release_Support_Policy databases/postgresql74-server||2011-04-04|Has expired: EOL; see http://wiki.postgresql.org/wiki/PostgreSQL_Release_Support_Policy databases/postgresql80-server||2011-04-04|Has expired: EOL; see http://wiki.postgresql.org/wiki/PostgreSQL_Release_Support_Policy devel/linux-f8-libglade||2011-04-04|Has expired: End of Life since Jan 7, 2009 devel/linux-f8-sdl12||2011-04-04|Has expired: End of Life since Jan 7, 2009 devel/linux-f8-allegro||2011-04-04|Has expired: End of Life since Jan 7, 2009 devel/linux-f8-libsigc++20||2011-04-04|Has expired: End of Life since Jan 7, 2009 devel/linux-f8-libglade2||2011-04-04|Has expired: End of Life since Jan 7, 2009 devel/linux-f8-nspr||2011-04-04|Has expired: End of Life since Jan 7, 2009 dns/linux-f8-libidn||2011-04-04|Has expired: End of Life since Jan 7, 2009 emulators/linux_base-f8||2011-04-04|Has expired: End of Life since Jan 7, 2009 emulators/linux_base-f9||2011-04-04|Has expired: End of Life since Jul 10, 2009 emulators/linux_base-fc6||2011-04-04|Has expired: End of Life since December 7, 2007 emulators/linux_base-f7||2011-04-04|Has expired: End of Life since June 13, 2008 ftp/linux-f8-curl||2011-04-04|Has expired: End of Life since Jan 7, 2009 graphics/linux-f8-sdl_image||2011-04-04|Has expired: End of Life since Jan 7, 2009 graphics/linux-f8-ungif||2011-04-04|Has expired: End of Life since Jan 7, 2009 graphics/linux-f8-imlib||2011-04-04|Has expired: End of Life since Jan 7, 2009 graphics/linux-f8-cairo||2011-04-04|Has expired: End of Life since Jan 7, 2009 graphics/linux-f8-dri||2011-04-04|Has expired: End of Life since Jan 7, 2009 graphics/linux-f8-gdk-pixbuf||2011-04-04|Has expired: End of Life since Jan 7, 2009 graphics/linux-f8-jpeg||2011-04-04|Has expired: End of Life since Jan 7, 2009 graphics/linux-f8-png||2011-04-04|Has expired: End of Life since Jan 7, 2009 graphics/linux-f8-libGLU||2011-04-04|Has expired: End of Life since Jan 7, 2009 graphics/linux-f8-libmng||2011-04-04|Has expired: End of Life since Jan 7, 2009 graphics/linux-f8-png10||2011-04-04|Has expired: End of Life since Jan 7, 2009 graphics/linux-f8-tiff||2011-04-04|Has expired: End of Life since Jan 7, 2009 lang/linux-f8-libg2c||2011-04-04|Has expired: End of Life since Jan 7, 2009 lang/linux-f8-tcl84||2011-04-04|Has expired: End of Life since Jan 7, 2009 multimedia/linux-f8-libtheora||2011-04-04|Has expired: End of Life since Jan 7, 2009 net-p2p/dcd||2011-04-04|Has expired: No fetch sources and looks like project abandoned net/straw||2011-04-04|Has expired: abandoned upstream and does not work with Python 2.6+ security/linux-f8-libssh2||2011-04-04|Has expired: End of Life since Jan 7, 2009 security/linux-f8-nss||2011-04-04|Has expired: End of Life since Jan 7, 2009 security/linux-f8-openssl||2011-04-04|Has expired: End of Life since Jan 7, 2009 textproc/linux-f8-libxml2||2011-04-04|Has expired: End of Life since Jan 7, 2009 textproc/linux-f8-scim-gtk||2011-04-04|Has expired: End of Life since Jan 7, 2009 textproc/linux-f8-scim-libs||2011-04-04|Has expired: End of Life since Jan 7, 2009 textproc/linux-f8-expat||2011-04-04|Has expired: End of Life since Jan 7, 2009 textproc/linux-f8-libxml||2011-04-04|Has expired: End of Life since Jan 7, 2009 textproc/linux-f8-aspell||2011-04-04|Has expired: End of Life since Jan 7, 2009 www/linux-f8-flashplugin10||2011-04-04|Has expired: End of Life since Jan 7, 2009 www/mediawiki112||2011-04-04|Has expired: abandoned upstream www/mediawiki113||2011-04-04|Has expired: abandoned upstream www/mediawiki114||2011-04-04|Has expired: abandoned upstream www/mediawiki16||2011-04-04|Has expired: abandoned upstream x11-fonts/linux-f8-fontconfig||2011-04-04|Has expired: End of Life since Jan 7, 2009 x11-themes/gnome-icons-cool-gorilla||2011-04-04|Has expired: no mastersite x11-themes/linux-f8-hicolor-icon-theme||2011-04-04|Has expired: End of Life since Jan 7, 2009 x11-toolkits/linux-f8-gtk||2011-04-04|Has expired: End of Life since Jan 7, 2009 x11-toolkits/linux-f8-gtk2||2011-04-04|Has expired: End of Life since Jan 7, 2009 x11-toolkits/linux-f8-openmotif||2011-04-04|Has expired: End of Life since Jan 7, 2009 x11-toolkits/linux-f8-pango||2011-04-04|Has expired: End of Life since Jan 7, 2009 x11-toolkits/linux-f8-qt33||2011-04-04|Has expired: End of Life since Jan 7, 2009 x11-toolkits/linux-f8-tk84||2011-04-04|Has expired: End of Life since Jan 7, 2009 x11/linux-f8-xorg-libs||2011-04-04|Has expired: End of Life since Jan 7, 2009 databases/erserver||2011-04-04|Has expired: does not compile on FreeBSD 7.x or newer databases/postgresql73-client||2011-04-04|Removed databases/postgresql74-client||2011-04-04|Removed databases/postgresql74-contrib||2011-04-04|Removed databases/postgresql80-client||2011-04-04|Removed databases/postgresql80-contrib||2011-04-04|Removed databases/postgresql81-client||2011-04-04|Removed security/barnyard||2011-04-04|Has expired: use barnyard2 instead graphics/linux_dri-devel|graphics/linux_dri|2011-04-07|Retire: is older than non-devel port math/linux-SHA-1_collision_search_graz||2011-04-07|Has expired: Project discontinued lang/compaq-cc||2011-04-09|Does not work on a supported platform devel/thistest||2011-04-12|Has expired: development has ceased; website disappeared emulators/xmamegui||2011-04-12|Has expired: development has ceased; try emulators/qmc2 instead games/airrox||2011-04-12|Has expired: development has ceased games/bfm||2011-04-12|Has expired: development has ceased; website disappeared games/xracer||2011-04-12|Has expired: has not been developed for 10 years net-p2p/gift-ares||2011-04-12|Has expired: development has ceased; does not work net-p2p/torrent_swapper||2011-04-12|Has expired: development has ceased (last release is of 2006) net-p2p/torrentvolve||2011-04-12|Has expired: development has ceased, and last release is beta sysutils/gag||2011-04-12|Has expired: no point in having it as a port, can be downloaded from the website and burned lang/gpc|lang/fpc|2011-04-12|Has expired: development has ceased; use lang/fpc instead security/mypasswordsafe|security/gorilla|2011-04-12|Has expired: development has ceased; try security/gorilla instead databases/db2||2011-04-12|Deprecated; use newer databases/db5* instead sysutils/rsyslog5-devel|sysutils/rsyslog5|2011-04-14|5.8.0 is the -stable for 5.7.x, and 5.6.x is now deprecated sysutils/rsyslog5-devel-dbi|sysutils/rsyslog5-dbi|2011-04-14|5.8.0 is the -stable for 5.7.x, and 5.6.x is now deprecated sysutils/rsyslog5-devel-gnutls|sysutils/rsyslog5-gnutls|2011-04-14|5.8.0 is the -stable for 5.7.x, and 5.6.x is now deprecated sysutils/rsyslog5-devel-gssapi|sysutils/rsyslog5-gssapi|2011-04-14|5.8.0 is the -stable for 5.7.x, and 5.6.x is now deprecated sysutils/rsyslog5-devel-mysql|sysutils/rsyslog5-mysql|2011-04-14|5.8.0 is the -stable for 5.7.x, and 5.6.x is now deprecated sysutils/rsyslog5-devel-pgsql|sysutils/rsyslog5-pgsql|2011-04-14|5.8.0 is the -stable for 5.7.x, and 5.6.x is now deprecated sysutils/rsyslog5-devel-relp|sysutils/rsyslog5-relp|2011-04-14|5.8.0 is the -stable for 5.7.x, and 5.6.x is now deprecated sysutils/rsyslog5-devel-rfc3195|sysutils/rsyslog5-rfc3195|2011-04-14|5.8.0 is the -stable for 5.7.x, and 5.6.x is now deprecated sysutils/rsyslog5-devel-snmp|sysutils/rsyslog5-snmp|2011-04-14|5.8.0 is the -stable for 5.7.x, and 5.6.x is now deprecated net-im/pickwick|net-im/chattahoochie|2011-04-15|Project renamed cad/tclspice||2011-04-18|Has expired: has been broken for more than a year comms/hcfmdm||2011-04-18|Has expired: does not compile on 7.X or higher databases/mysqlcc||2011-04-18|Has expired: has been broken for almost a year devel/ruby-rjudy||2011-04-18|Has expired: does not compile on FreeBSD 7.x or newer devel/xfc||2011-04-18|Has expired: does not compile on FreeBSD 7.x or newer devel/lamson||2011-04-18|Has expired: has been broken for a half year devel/cocktail||2011-04-18|Has expired: does not build on FreeBSD 7.x or newer devel/djgpp-gcc||2011-04-18|Has expired: has been broken for half a year devel/gauche-sdl||2011-04-18|Has expired: has been broken for a year devel/gdb53-act||2011-04-18|Has expired: does not compile on FreeBSD 7.x and up editors/zed||2011-04-18|Has expired: does not compile on FreeBSD 7.x or newer games/aqbubble||2011-04-18|Has expired: does not compile on FreeBSD 7.x or newer graphics/libvisual-plugins||2011-04-18|Has expired: has been broken for 3 years japanese/roundcube||2011-04-18|Has expired: has been broken for almost a year japanese/tkstep80||2011-04-18|Has expired: does not compile on FreeBSD 7.x or newer lang/u++||2011-04-18|Has expired: has been broken for over a half year lang/pugs||2011-04-18|Has expired: has been broken for over a year lang/mozart||2011-04-18|Has expired: does not compile on FreeBSD 7.x or newer math/linalg||2011-04-18|Has expired: does not build on FreeBSD 7.x or newer misc/ftree||2011-04-18|Has expired: has been broken for over a half year multimedia/katchtv||2011-04-18|Has expired: has been broken for a half year multimedia/libomxil-bellagio||2011-04-18|Has expired: has been broken for almost a year multimedia/banshee-mirage||2011-04-18|Has expired: has been broken for over a half year net-p2p/trackerbt||2011-04-18|Has expired: has been broken for a half year net/cap||2011-04-18|Has expired: does not compile on FreeBSD 7.x or newer net/ggsd||2011-04-18|Has expired: does not compile on FreeBSD 7.x or newer net/b2bua||2011-04-18|Has expired: does not compile on FreeBSD 7.x or newer net/penguintv||2011-04-18|Has expired: has been broken for a half year news/openftd||2011-04-18|Has expired: has been broken for almost a year palm/romeo||2011-04-18|Has expired: does not compile on FreeBSD 7.x or newer science/pcp||2011-04-18|Has expired: does not compile on FreeBSD 7.x or newer science/elmer-fem||2011-04-18|Has expired: has been broken for over a year security/newpki-lib||2011-04-18|Has expired: does not compile on FreeBSD 7.x or newer security/newpki-server||2011-04-18|Has expired: does not compile on FreeBSD 7.x or newer security/xmlsec||2011-04-18|Has expired: does not compile on FreeBSD 7.x or newer security/f-protd||2011-04-18|Has expired: has been broken for over a year sysutils/xwlans||2011-04-18|Has expired: does not compile on FreeBSD 7.x or newer www/bk_edit||2011-04-18|Has expired: does not compile on FreeBSD 7.x and newer www/bricolage||2011-04-18|Has expired: has been broken for a half year x11-toolkits/gauche-gtk||2011-04-18|Has expired: has been broken for a year x11-toolkits/php-gtk2||2011-04-18|Has expired: has been broken for over a half year x11-toolkits/p5-Tcl-Tk||2011-04-18|Has expired: has been broken for 2 year security/newpki-client||2011-04-18|Removed lang/gnustep-objc|lang/gnustep-libobjc|2011-04-19|Replaced with libobjc graphics/netpbm-devel|graphics/netpbm|2011-04-22|Updated to default ports-mgmt/portmk||2011-04-29|Has expired: has not been kept up to date for > 6 months ports-mgmt/portsman||2011-04-29|Has expired: hardwires an ancient version of INDEX mail/kiltdown||2011-04-29|Has expired: upstream seems dead since 2001 devel/pinstall||2011-04-30|Removed x11-wm/kappdock||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-wm/wmg||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-toolkits/gtkglarea--||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-toolkits/php-gtk||2011-05-01|Has expired: Abandoned upstream x11-toolkits/py-gtkextra||2011-05-01|Has expired: Abandoned upstream x11-toolkits/viewkit||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-themes/buffy||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-themes/clean-theme-gtk||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-themes/colorstep||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-themes/engradient||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-themes/flux-art||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-themes/gtk-Mac2-theme||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-themes/gtk-flat-theme||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-themes/gtkbe||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-themes/gtkstep||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-themes/gtkstep-pastel||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-themes/icegradient||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-themes/notif2||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-themes/whistlerk||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-themes/xenophilia||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-themes/xenostep||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-fm/cfm||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-fm/gnome-commander||2011-05-01|Has expired: Gnome1 is deprecated, consider using gnome-commander2 x11-fm/jaffm||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-fm/workplace||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-clocks/bdesktopclock||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-clocks/washerdryer||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-clocks/wmtz||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11-clocks/xmms-alarm||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11/buttonbox||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11/cnslock||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11/gnome-launch-box||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11/gtk-themepreview||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11/gxset||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11/portoseguro||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11/wmfstatus||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11/wmoldmenu2new||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11/xbindkeys_config||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11/xmold||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available x11/xtattr||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available www/indexme||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available www/osb-browser||2011-05-01|Has expired: Abandonware, please use www/webkit-gtk2 www/osb-nrcit||2011-05-01|Has expired: Abandonware, please use www/webkit-gtk2 www/osb-nrcore||2011-05-01|Has expired: Abandonware, please use www/webkit-gtk2 www/pumperweb||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available www/py-ez_web||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available www/py-pullparser||2011-05-01|Has expired: Obsolete and deprecated www/sidplug||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available www/twhttpd||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available www/wnews||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available www/xpath2rss||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available japanese/iiimf-le-freewnn||2011-05-01|Removed, depends on expired library japanese/iiimf-le-canna||2011-05-01|Removed, depends on expired library chinese/iiimf-le-newpy||2011-05-01|Removed, depends on expired library korean/iiimf-le-hangul||2011-05-01|Removed, depends on expired library chinese/iiimf-le-ude||2011-05-01|Removed, depends on expired library textproc/ctpp|textproc/ctpp2|2011-05-01|Has expired: Deprecated; please use textproc/ctpp2 textproc/dsssl-docbook-cygnus||2011-05-01|Has expired: Distfile is no longer available textproc/fdp-tools||2011-05-01|Has expired: Distfile is no longer available textproc/iiimf-client-lib||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available textproc/iiimf-csconv||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available textproc/iiimf-headers||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available textproc/iiimf-le-unit||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available textproc/iiimf-protocol-lib||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available textproc/iiimf-server||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available textproc/iiimf-x||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available textproc/iiimf-x-lib||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available textproc/maketeidtd||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available textproc/minidom||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available textproc/ocaml-yaxpo||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available textproc/p5-LJ-SpellCheck||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available textproc/py-HyperText||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available textproc/smartdoc||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available textproc/xmlpp||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/acidlaunch||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/cpbk||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/dc42wrap||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/deleted||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/dolly+||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/durep||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/dvdtape||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/fontedit||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/ftrace||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/gfslicer||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/ghasher||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/gkrellmouse||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/gkrellmwho||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/glload||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/gnomefind||2011-05-01|Has expired: Abandoned upstream sysutils/graft||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/growspd||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/gtoaster||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/idled||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available, consider using sysutils/doinkd sysutils/maint||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/ndir||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/p5-LJ-Cache||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/p5-LJ-TextMessage||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/reclinker||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/rotate||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/ticker.app||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/upsmon||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/usbutil||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/uwatch||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/wmavgload||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/wmfsm||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/wmhm||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/wminet||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/wmlmmon||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/wmlongrun||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/wmmemmon||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/wmmount||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/wmpccard||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/wmshutdown||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available sysutils/wmzazof||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available security/aafid2||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available security/bjorb||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available security/borzoi||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available security/find_ddos||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available security/ftpmap||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available security/hafiye||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available security/ident2||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available security/liedentd||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available security/pam_pop3||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available security/poc||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available security/portscanner||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available security/ppgen||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available security/qident||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available security/quintuple-agent||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available security/rc5pipe||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available security/rid||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available security/ssh||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available security/tea-total||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available security/uberkey||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available print/bjfilter360||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available print/bjfilter850||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available print/bjfilter850ug||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available print/bjfilter860||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available print/bjfilter870||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available print/bjfiltercom||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available print/bjfilters600||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available print/bjfilters630||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available print/bjfilters6300||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available print/bsd_lpr||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available print/dvi2xx||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available print/envelope||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available print/pclprint||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available print/psmark||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available print/tipograf||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available print/tr2latex||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available print/wmlpq||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available palm/jfconv||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available palm/palmpower||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available palm/sitescooper||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available palm/uppc-kmod||2011-05-01|Has expired: Upstream disappeared and distfile is no longer available news/leafnode+||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available news/pyne||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available news/slurp||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available news/unpost||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net-p2p/edonkey-gui-gtk||2011-05-02|Removed, depends on linux-edonkey-core which has expired net-p2p/edonkey-gui-gtk-urlslave||2011-05-02|Removed, depends on linux-edonkey-core which has expired net-p2p/fcptools||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net-p2p/hx||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net-p2p/linux-edonkey-core||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net-p2p/linux-edonkey-server||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net-p2p/linux-edonkey-tool-recovermet||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net-mgmt/junipoll||2011-05-02|Removed, depends on expired net-mgmt/p5-Altoids net-mgmt/annextools||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net-mgmt/asused||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net-mgmt/ipsectrace||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net-mgmt/knowlan||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net-mgmt/p5-Altoids||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net-mgmt/scotty3||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net-im/aim||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net-im/jit||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net-im/kf||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/bbsnet||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/bing||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/brutecopy||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/crescendo||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/danamics||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/etunnel||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/gastman||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/generic-nqs||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/gkrellmmultiping2||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/gkrellmwireless||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/gnoemoe||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/gnosamba||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/merlinmon||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/msntp||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/ntalk||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/onion-fec||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/openverse||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/poink||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/roadrunner||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/sambasentinel||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/scand||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/tacshell||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/telserv||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/tvark||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/warppipe||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/wistumbler2||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/wmq3||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/xbone-gui||2011-05-02|Has expired: will be unsupported by ASF when 2.4.0 is release, migrate to 2.2.x+ now net/xsmbrowser||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/xtraceroute||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/ytalk||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available net/zniper||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available multimedia/gtksubtitler||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available multimedia/hayes||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available multimedia/netshow||2011-05-02|Has expired: Distfile is no longer available multimedia/smpeg-xmms||2011-05-02|Has expired: Distfile is no longer available multimedia/streamdvd||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available multimedia/sublib||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available multimedia/tkxanim||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available multimedia/tosvcd||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available multimedia/tv_grab_au||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available multimedia/xdvshow||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available multimedia/xmms-avi||2011-05-02|Has expired: Distfile is no longer available multimedia/xmps||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available multimedia/xvid4conf||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available misc/acron||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available misc/chord||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available misc/datedif||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available misc/earthview||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available misc/fcalc||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available misc/gkrellscore||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available misc/goldstr||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available misc/gtl||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available misc/kp||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available misc/nserver||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available misc/patanjali||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available misc/qmc||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available misc/snowflake||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available misc/translator||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available misc/videotext||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available misc/wmweather||2011-05-02|Has expired: Distfile is no longer available, try misc/wmweather+ misc/wmx10||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available math/fudgit||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available math/kaskade||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available math/qscanplot||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available math/rpc||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available math/ss||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available math/wmcalc||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available mail/crashecho||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available mail/drbl||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available mail/glbiff||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available mail/libsrs||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available mail/majorcool||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available mail/messagewall||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available mail/pgen||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available mail/regm||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available mail/ricochet||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available mail/smtpclient||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available mail/smtpproxy||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available mail/solidpop3d||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available mail/spruce||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available mail/teapop-devel||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available mail/wmmail||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available mail/wmmultipop3||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available mail/wmymail||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available java/avalon-logkit||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available java/gnu-regexp||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available java/jce-aba||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available java/jsdk||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available irc/garnaxfs||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available irc/party||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/cqcam||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/dc3play||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/dore||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/fig2pstricks||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/geist||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/gfont||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/gimp-greycstoration||2011-05-02|Has expired: Superseded by graphics/gimp-gmic-plugin graphics/glean||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/gltk||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/gridpix||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/gtkfig||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/gview||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/icod||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/isreal||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/oglext||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/ophoto||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/py-gdchart||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/py-gdchart2||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/qglviewer||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/robot||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/s3switch||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/sced||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/shim||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/snx101util||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/tcm||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/vertex||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/vvv||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/xdl||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/xmms-goom||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available graphics/xmms-infinity||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available ftp/axyftp||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available ftp/emacs-wget||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available ftp/moftpd||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available ftp/wu-ftpd||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available ftp/xrmftp||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available ftp/yale-tftpd||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available emulators/basiliskII||2011-05-02|Has expired: Distfile is no longer available; official website has older distfiles emulators/tkhfs||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available emulators/twin||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available emulators/vgb||2011-05-02|Has expired: Distfile is no longer available (latest binaries provided by upstream are for 5.x) emulators/vpce||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available chinese/nvi-big5||2011-05-02|Has expired: Distfile is no longer available chinese/nvi-euc-cn||2011-05-02|Has expired: Distfile is no longer available chinese/nvi-euc-tw||2011-05-02|Has expired: Distfile is no longer available editors/nvi-perl||2011-05-02|Has expired: Distfile is no longer available japanese/nvi-euc-jp||2011-05-02|Has expired: Distfile is no longer available japanese/nvi-iso-2022-jp||2011-05-02|Has expired: Distfile is no longer available japanese/nvi-sjis||2011-05-02|Has expired: Distfile is no longer available korean/nvi-euc-kr||2011-05-02|Has expired: Distfile is no longer available korean/nvi-iso-2022-kr||2011-05-02|Has expired: Distfile is no longer available editors/MathPlanner||2011-05-02|Has expired: Upstream says project is canceled and no more distfiles can be found editors/bitmap||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available editors/bitmap-emacs21||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available editors/cle||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available editors/dedit||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available editors/em||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available editors/leim21||2011-05-02|Has expired: Distfile is no longer available editors/lpe||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available editors/vilearn||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available editors/xenon||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/a2dev||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/c2lib||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/c2man||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/c_parser||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/cdoc||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/diffconvert||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/error||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/excalibur-configuration||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/freelibiberty||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/gengameng||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/hptools||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/invitation_to_ruby||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/kimwitu++||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/libU77||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/libcoro||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/libpperl||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/lincvs||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/linux-runrev||2011-05-02|Has expired: Abandoned upstream and distfile is no longer available devel/makeplus||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/maketool||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/mob||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/mprof||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/ngpt||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/pedisassem||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/rinfo||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/templ||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available devel/towitoko||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available x11-fonts/avifonts||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available x11-fonts/bitmap-fonts||2011-05-02|Has expired: Distfile is no longer available x11-fonts/mozilla-fonts||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available x11-fonts/xfed||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available x11-fonts/xmbdfed||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available audio/dap||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available audio/gdrdao||2011-05-02|Has expired: Upstream disappeared and no more distfiles available databases/gmysql||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available deskutils/kuake||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available finance/xinvest||2011-05-02|Has expired: Outdated, abandoned finance/xquote||2011-05-02|Has expired: Outdated, abandoned french/plgrenouille||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available editors/xemacs-devel-mule-xft||2011-05-02|Remove, editors/xemacs-devel-mule builds with xft support now lang/clips||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available lang/eiffel||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available lang/libutils||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available lang/linux-libperl5.8||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available lang/osb-jscore||2011-05-02|Has expired: Abandonware, please use www/webkit-gtk2 devel/kxl||2011-05-02|Has expired: Upstream disappeared and distfile is no longer available games/geki2||2011-05-02|Removed, Upstream disappeared and distfile is no longer available games/geki3||2011-05-02|Removed, Upstream disappeared and distfile is no longer available games/grande||2011-05-02|Removed, Upstream disappeared and distfile is no longer available games/spacearyarya||2011-05-02|Removed, Upstream disappeared and distfile is no longer available ftp/ftptool||2011-05-02|Removed, depend on this expired editors/textedit security/libfwbuilder||2011-05-02|libfwbuilder merged into fwbuilder games/monopd||2011-05-03|Removed, depends on an expired library: devel/libcapsinetwork devel/libcapsinetwork||2011-05-03|Has expired: Upstream disappeared and distfile is no longer available audio/albumart||2011-05-03|Has expired: Upstream disappeared and distfile is no longer available audio/cantus||2011-05-03|Has expired: Upstream disappeared and distfile is no longer available science/oases||2011-05-03|Has expired: Upstream disappeared and distfile is no longer available shells/pash||2011-05-03|Has expired: Upstream disappeared and distfile is no longer available www/codeigniter-devel||2011-05-03|Removed devel/common_msgs|devel/ros-common_msgs|2011-05-03|Renamed math/geometry|math/ros-geometry|2011-05-03|Renamed devel/hs-FileManip|devel/hs-filemanip|2011-05-08|Renamed: Cabal package has been renamed devel/lhs2TeX|textproc/hs-lhs2tex|2011-05-08|Renamed: It has become a Cabal transcript devel/bnfc|devel/hs-BNFC|2011-05-08|Renamed: It has become a Cabal transcript graphics/hs-hgl|graphics/hs-HGL|2011-05-08|Deleted: overridden by graphics/hs-HGL net/hs-network-bytestring||2011-05-08|Removed: It is deprecated by net/hs-network devel/hs-uvector||2011-05-08|Removed: It is deprecated by devel/hs-vector devel/hs-uvector-algorithms||2011-05-08|Removed: It is deprecated by devel/hs-vector-algorithms devel/jude-community|devel/astah-community|2011-05-09|Project was renamed net/skype12|net-im/skype12|2011-05-09|Moved to a better category net/skype|net-im/skype|2011-05-09|Moved to a better category net/skype-devel|net-im/skype-devel|2011-05-12|Moved to a better category devel/libchipcard-kde||2011-05-14|Obsolete sysutils/libgksuui|sysutils/libgksu|2011-05-14|Removed: It is a part of sysutils/libgksu now security/barnyard-sguil|security/barnyard2-sguil|2011-05-15|barnyard2 has build in sguil support multimedia/rebot3||2011-05-16|Removed devel/tcl-neo||2011-05-22|Removed: deprecated and no maintainer interest www/neowebscript||2011-05-22|Removed: deprecated and no maintainer interest databases/db3||2011-05-23|Removed: all users set USE_BDB=3+ and have been using 4.0+ databases/db45|databases/db46|2011-05-28|Removed: no users left that require exactly 4.5 textproc/scim-kmfl-european-latin|textproc/kmfl-european-latin|2011-05-29|KMFL keyboard ports are now platform-independent textproc/scim-kmfl-sil-ezra|textproc/kmfl-sil-ezra|2011-05-29|KMFL keyboard ports are now platform-independent textproc/scim-kmfl-sil-galatia|textproc/kmfl-sil-galatia|2011-05-29|KMFL keyboard ports are now platform-independent textproc/scim-kmfl-sil-ipa-unicode5|textproc/kmfl-sil-ipa-unicode|2011-05-29|KMFL keyboard ports are now platform-independent textproc/scim-kmfl-sil-panafrican-latin|textproc/kmfl-sil-panafrican-latin|2011-05-29|KMFL keyboard ports are now platform-independent textproc/scim-kmfl-sil-yi|textproc/kmfl-sil-yi|2011-05-29|KMFL keyboard ports are now platform-independent textproc/scim-kmfl-varamozhi-malayalam|textproc/kmfl-varamozhi-malayalam|2011-05-29|KMFL keyboard ports are now platform-independent dns/bind94||2011-05-31|EOL - Update to dns/bind97 or dns/bind96 dns/bind94-geoip||2011-05-31|BIND 9.4.x is EOL german/citrix_xenapp||2011-06-01|Has expired: crashes with Fedora 10 Linux base japanese/citrix_xenapp||2011-06-01|Has expired: crashes with Fedora 10 Linux base net/citrix_xenapp||2011-06-01|Has expired: crashes with Fedora 10 Linux base comms/gammu-python||2011-06-01|Has expired: since version 1.29.0 comms/gammu uses Python by default java/gj||2011-06-01|Has expired: Upstream disappeared and distfile is no longer available net/ipv6socket_scrub||2011-06-01|Has expired: Upstream disappeared and distfile is no longer available graphics/lodju||2011-06-01|Has expired: depends on rep-gtk, which doesn't build anymore www/mod_pubcookie||2011-06-01|Has expired: will be unsupported by ASF when 2.4.0 is release, migrate to 2.2.x+ now ftp/prozilla||2011-06-01|Has expired: Upstream disappeared and distfile is no longer available www/py-django11||2011-06-01|Has expired: Unsupported (no longer receive security updates or bugfixes) x11-toolkits/rep-gtk||2011-06-01|Has expired: missing rep-config from librep port broke the build games/tnl||2011-06-01|Has expired: Upstream development has ceased, it doesn't work with newer CEGUI and is generally broken net/vnc2swf|deskutils/vnc2flv|2011-06-01|Has expired: Development is now superseded by deskutils/vnc2flv mail/postfix24||2011-06-03|Has expired: no further upstream development; please consider upgrading www/mod_roaming2||2011-06-04|Has expired: no supported browser and no further upstream development; see PR 73383 net-p2p/qbittorrent26|net-p2p/qbittorrent|2011-06-05|Old version no longer updated. Try net-p2p/qbittorrent net-p2p/qbittorrent26-nox11|net-p2p/qbittorrent-nox11|2011-06-05|Old version no longer updated. Try net-p2p/qbittorrent net-p2p/qbittorrent27|net-p2p/qbittorrent|2011-06-05|Old version no longer updated. Try net-p2p/qbittorrent net-p2p/qbittorrent27-nox11|net-p2p/qbittorrent-nox11|2011-06-05|Old version no longer updated. Try net-p2p/qbittorrent www/pubcookie-login-server||2011-06-06|Has expired: Unused by maintainer, needs updates databases/mariadb||2011-06-06|Split into databases/mariadb-{client,scripts,server} devel/bugzilla2||2011-06-07|Removed: no longer under development lang/ruby-js||2011-06-09|Removed: depends on expired port, seems abandonware itself textproc/ruby-xml-script||2011-06-09|Removed: depends on expired port, seems abandonware itself www/ruby-asp||2011-06-09|Removed: depends on expired port, seems abandonware itself lang/njs||2011-06-09|Has expired: Upstream disappeared and distfile is no longer available editors/wily||2011-06-09|Removed, depends on an expired port x11-fonts/Xg||2011-06-09|Has expired: Upstream disappeared and distfile is no longer available irc/bitlbee-otr||2011-06-13|Removed, overridden by irc/bitlbee deskutils/mcatalog||2011-06-13|Has expired: Upstream disappeared and distfile is no longer available mail/evolution-sharp||2011-06-13|Has expired: has been broken for over a year print/cmpsfont|print/font-amsfonts|2011-06-15|Renamed print/amspsfnt|print/font-amsfonts|2011-06-15|Renamed irc/ezbounce-devel|irc/ezbounce|2011-06-19|Main port updated to the latest available version graphics/povray|graphics/povray36|2011-06-21|Renamed x11/widgetfactory|x11-themes/thewidgetfactory|2011-06-23|Duplicate ports merged deskutils/opengoo|deskutils/fengoffice|2011-06-24|It was renamed to deskutils/fengoffice irc/gdesklets-irc||2011-06-25|Has expired: Upstream disappeared and distfile is no longer available net/libevnet||2011-06-25|Has expired: no longer necessary now that libevent2 has been released www/mod_auth_ldap||2011-06-25|Has expired: apache 13/20 is scheduled for deletion, migrate to 2.2.x+ and mod_authnz_ldap now www/mod_auth_remote||2011-06-25|Has expired: will be unsupported by ASF when 2.4.0 is release, migrate to 2.2.x+ now www/mod_authenticache||2011-06-25|Has expired: will be unsupported by ASF when 2.4.0 is release, migrate to 2.2.x+ now www/mod_layout2||2011-06-25|Has expired: will be unsupported by ASF when 2.4.0 is release, migrate to 2.2.x+ now www/mod_macro2||2011-06-25|Has expired: will be unsupported by ASF when 2.4.0 is release, migrate to 2.2.x+ now www/mod_traf_thief||2011-06-25|Has expired: will be unsupported by ASF when 2.4.0 is release, migrate to 2.2.x+ now www/mod_transform||2011-06-25|Has expired: will be unsupported by ASF when 2.4.0 is release, migrate to 2.2.x+ now comms/ruby-termios|comms/rubygem-ruby-termios|2011-06-25|Development has moved, <=0.9.5 doesn't work with Ruby 1.9.x java/jdk14||2011-06-28|Has expired: does not build on FreeBSD 7.x or newer mail/vpopmail-devel|mail/vpopmail|2011-06-28|Has expired: Obsolete version, install mail/vpopmail port audio/rat||2011-07-01|The mbone is no more audio/rat30||2011-07-01|The mbone is no more audio/speak_freely||2011-07-01|The mbone is no more audio/vat||2011-07-01|The mbone is no more audio/xspeakfree||2011-07-01|The mbone is no more net/imm||2011-07-01|The mbone is no more net/mcl||2011-07-01|The mbone is no more net/rqm||2011-07-01|The mbone is no more net/sdr||2011-07-01|The mbone is no more net/udpcast||2011-07-01|The mbone is no more net/wb||2011-07-01|The mbone is no more math/femlab||2011-07-02|Has expired: No more distfiles, looks like abandonware japanese/wikicker||2011-07-02|Has expired: Looks like abandonware emulators/vmware3||2011-07-02|Has expired: No more distfiles available; emulators/virtualbox-ose can be used as a replacement devel/libevocosm||2011-07-02|Has expired: Looks like abandonware devel/acovea||2011-07-02|Has expired: Looks like abandonware devel/acovea-gtk||2011-07-02|Has expired: Looks like abandonware sysutils/service-config||2011-07-02|Has expired: mastersite disappeared print/lyx-devel||2011-07-03|print/lyx has been updated to a newer version, use it instead archivers/lzo||2011-07-07|Use archivers/lzo2 instead www/horde4-browser||2011-07-07|Removed www/horde4-template||2011-07-07|Removed deskutils/horde4-itip||2011-07-07|Removed deskutils/horde4-alarm||2011-07-07|Removed devel/horde4-rdo||2011-07-07|Removed devel/horde4-date||2011-07-07|Removed devel/horde4-autoloader||2011-07-07|Removed devel/horde4-cache||2011-07-07|Removed devel/horde4-dateparser||2011-07-07|Removed devel/horde4-translation||2011-07-07|Removed devel/horde4-streamfilter||2011-07-07|Removed devel/horde4-constraint||2011-07-07|Removed devel/horde4-streamwrapper||2011-07-07|Removed graphics/horde4-image||2011-07-07|Removed security/horde4-auth||2011-07-07|Removed x11-wm/boxtools|x11-wm/blackbox|2011-07-08|Ports merged together audio/ruby-ogginfo||2011-07-09|Replaced with audio/rubygem-ogginfo audio/ruby-shout||2011-07-10|Replaced with audio/rubygem-shout textproc/xpp3||2011-07-11|Removed depends on an expired ports textproc/xmlpull||2011-07-11|Has expired: Upstream disappeared and distfile is no longer available java/shujit||2011-07-13|Has expired: ancient version of Java net-im/skype12||2011-07-13|Has expired: very old version net-p2p/tvrss||2011-07-14|tvrss site does not exist anymore www/horde4-meta||2011-07-14|Removed graphics/crystalentitylayer||2011-07-17|Removed graphics/crystalspace||2011-07-17|Has expired: has been broken for a year mail/qmail-vida||2011-07-18|Has expired: UID collisions, IGNOREd for four years with no one caring java/jdk13|java/jdk15|2011-07-21|Has expired: ancient version of Java java/linux-sun-jdk13|java/linux-sun-jdk15|2011-07-21|Has expired: ancient version of Java java/jboss3||2011-07-21|Has expired: Depends on expired Java 1.4 textproc/galax||2011-07-21|Has expired: Depends on expired Java 1.4 devel/colorer||2011-07-21|Has expired: Depends on deprecated Java 1.4 security/jce_policy14||2011-07-21|Has expired: Only for Java 1.4, which is deprecated java/linux-blackdown-jdk14||2011-07-21|Has expired: ancient version of Java java/linux-sun-jdk14|java/linux-sun-jdk15|2011-07-21|Has expired: ancient version of Java dns/dhid||2011-07-28|Has expired: Unmaintained, distfile has changed with no explanation math/librandlib|math/randlib|2011-07-28|Move to a location that matches the name science/bblimage|science/pyvox|2011-07-28|Track the upstream name change net-im/gnome-jabber|net-im/empathy|2011-07-28|Has expired: No longer maintained upstream since 2005; use net-im/empathy instead devel/gir-repository||2011-07-30|Removed devel/gir-repository-libnotify||2011-07-30|Removed graphics/gir-repository-goocanvas||2011-07-30|Removed graphics/gir-repository-poppler||2011-07-30|Removed x11-toolkits/gir-repository-vte||2011-07-30|Removed mail/rubygem-smtp_tls||2011-07-30|Has expired: no supported version of FreeBSD have < 1.8.7.p72 textproc/pl-hunspell|polish/hunspell|2011-07-31|Move to a better place via repocopy www/mod_roaming||2011-08-01|Has expired: no supported browser and no further upstream development; see PR 73383 archivers/zipios++||2011-08-01|Has expired: No more public distfiles astro/sattrack||2011-08-01|Has expired: No more public distfiles audio/bladeenc||2011-08-01|Has expired: Looks like abandonware audio/cdplayer.app||2011-08-01|Has expired: Looks like abandonware, no more public distfiles audio/linux-vsound||2011-08-01|Has expired: Abandonware audio/mpegaudio||2011-08-01|Has expired: No more public distfiles audio/mpmf20||2011-08-01|Has expired: Abandonware audio/mutemix||2011-08-01|Has expired: abandonware, no more public distfiles audio/phatbeat||2011-08-01|Has expired: abandonware, no more public distfiles audio/pimp3||2011-08-01|Has expired: No more public distfiles audio/rbscrobbler||2011-08-01|Has expired: Looks like abandonware, no more public distfiles audio/ripenc||2011-08-01|Has expired: Looks like abandonware, no more public distfiles audio/wmcdplay||2011-08-01|Has expired: Looks like abandonware, no more public distfiles audio/wmfmixer||2011-08-01|Has expired: Looks like abandonware, no more public distfiles audio/wmmp3||2011-08-01|Has expired: Looks like abandonware, no more public distfiles audio/wmusic||2011-08-01|Has expired: Looks like abandonware, no more public distfiles audio/xmms-kj||2011-08-01|Has expired: Looks like abandonware, no more public distfiles audio/xmms-pipe||2011-08-01|Has expired: Looks like abandonware, no more public distfiles audio/xmms-speex||2011-08-01|Has expired: Looks like abandonware, no more public distfiles audio/xsidplay||2011-08-01|Has expired: Looks like abandonware, no more public distfiles audio/xtuner||2011-08-01|Has expired: Looks like abandonware, no more public distfiles benchmarks/rawio||2011-08-01|Has expired: Looks like abandonware, no more public distfiles benchmarks/tmetric||2011-08-01|Has expired: Looks like abandonware, no more public distfiles biology/L-Breeder||2011-08-01|Has expired: Looks like abandonware, no more public distfiles biology/crimap||2011-08-01|Has expired: Looks like abandonware, no more public distfiles biology/distribfold||2011-08-01|Has expired: No more upstream, looks like abandonware biology/kinemage||2011-08-01|Has expired: Looks like abandonware, no more public distfiles biology/lsysexp||2011-08-01|Has expired: Looks like abandonware, no more public distfiles chinese/chm2html||2011-08-01|Has expired: Looks like abandonware, no more public distfiles chinese/ntuttf||2011-08-01|Has expired: No more public distfiles available chinese/tocps||2011-08-01|Has expired: No more public distfiles available chinese/xttmgr||2011-08-01|Has expired: Looks like abandonware, no more public distfiles comms/mserver||2011-08-01|Has expired: Looks like abandonware, no more public distfiles comms/qicosi||2011-08-01|Has expired: Looks like abandonware, no more public distfiles comms/smstools||2011-08-01|Has expired: Looks like abandonware, no more public distfiles converters/siconv||2011-08-01|Has expired: Looks like abandonware, no more public distfiles converters/utf8conv||2011-08-01|Has expired: Looks like abandonware, no more public distfiles databases/pgcluster||2011-08-01|Has expired: Looks like abandonware, no more public distfiles databases/py-MySQL||2011-08-01|Has expired: Please use databases/py-MySQLdb instead databases/py-SQLDict||2011-08-01|Has expired: Looks like abandonware, no more public distfiles databases/py-rrdpipe||2011-08-01|Has expired: Looks like abandonware, no more public distfiles databases/sybase_ase||2011-08-01|Has expired: no more public distfiles available deskutils/gkrellm-timers||2011-08-01|Has expired: No more public distfile deskutils/multi-backgrounds-daemon||2011-08-01|Has expired: Looks like abandonware, no more public distfiles deskutils/py-tagfu||2011-08-01|Has expired: Looks like abandonware, no more public distfiles deskutils/taskstep||2011-08-01|Has expired: Looks like abandonware, no more public distfiles devel/c_c++_reference||2011-08-01|Has expired: No more public distfiles devel/libcoyotl||2011-08-01|Has expired: Looks like abandonware, no more public distfiles devel/libfs++||2011-08-01|Has expired: Looks like abandonware, no more public distfiles devel/mkmf||2011-08-01|Has expired: Looks like abandonware, no more public distfiles devel/p5-Include||2011-08-01|Has expired: No more public distfiles devel/rubygem-newgem||2011-08-01|Has expired: broken since 2010/09/22 devel/tpg||2011-08-01|Has expired: Looks like abandonware, no more public distfiles games/amphetamine||2011-08-01|Has expired: Looks like abandonware, no more public distfiles games/anagramarama||2011-08-01|Has expired: Looks like abandonware, no more public distfiles games/connect4||2011-08-01|Has expired games/wrogue||2011-08-01|Has expired: Looks like abandonware, no more public distfiles graphics/xmms-msa||2011-08-01|Has expired: Looks like abandonware, no more public distfiles japanese/chimera||2011-08-01|Has expired: Looks like abandonware, no more public distfiles japanese/drpl||2011-08-01|Has expired: Looks like abandonware, no more public distfiles japanese/easypr||2011-08-01|Has expired: Looks like abandonware, no more public distfiles japanese/elisp-manual||2011-08-01|Has expired: Looks like abandonware, no more public distfiles japanese/emacs-manual||2011-08-01|Has expired: Looks like abandonware, no more public distfiles japanese/ewipe||2011-08-01|Has expired: Looks like abandonware, no more public distfiles japanese/ircII||2011-08-01|Has expired: Looks like abandonware, no more public distfiles japanese/jhd||2011-08-01|Has expired: Looks like abandonware, no more public distfiles japanese/libjconv||2011-08-01|Has expired: Looks like abandonware, no more public distfiles japanese/mimekit||2011-08-01|Has expired: Looks like abandonware, no more public distfiles japanese/nethack32||2011-08-01|Has expired: Looks like abandonware, no more public distfiles japanese/paledit||2011-08-01|Has expired: Looks like abandonware, no more public distfiles japanese/recjis||2011-08-01|Has expired: Looks like abandonware, no more public distfiles japanese/typist||2011-08-01|Has expired: Looks like abandonware, no more public distfiles japanese/weblint97||2011-08-01|Has expired: Looks like abandonware, no more public distfiles japanese/xmsgsaver||2011-08-01|Has expired: Looks like abandonware, no more public distfiles japanese/xshodo||2011-08-01|Has expired: Looks like abandonware, no more public distfiles japanese/xvi-euc||2011-08-01|Has expired: No more public distfiles japanese/xvi-sjis||2011-08-01|Has expired: No more public distfiles japanese/xyagamo||2011-08-01|Has expired: Looks like abandonware, no more public distfiles korean/a2ps||2011-08-01|Has expired: Looks like abandonware, no more public distfiles korean/bitchx||2011-08-01|Has expired: Looks like abandonware, no more public distfiles korean/elm||2011-08-01|Has expired: Looks like abandonware, no more public distfiles korean/linuxdoc-sgml||2011-08-01|Has expired: Looks like abandonware, no more public distfiles korean/mod_url||2011-08-01|Has expired: Looks like abandonware, no more public distfiles korean/nh2ps||2011-08-01|Has expired: Looks like abandonware, no more public distfiles korean/pinetreefonts||2011-08-01|Has expired: No more public distfile mail/cmail||2011-08-01|Has expired: No more public distfile math/qgfe||2011-08-01|Has expired: Looks like abandonware, no more public distfiles misc/ewipe||2011-08-01|Has expired: Looks like abandonware, no more public distfiles misc/gkrellmfmonitor2||2011-08-01|Has expired: Looks like abandonware, no more public distfiles misc/gkx86info||2011-08-01|Has expired: Looks like abandonware, no more public distfiles multimedia/goggles||2011-08-01|Has expired: Abandonware, see: http://www.fifthplanet.net/2010/01/dead-projects-goggles-dvd-player.html multimedia/ldvd||2011-08-01|Has expired: Abandonware multimedia/linux-divx4linux||2011-08-01|Has expired: No longer needed multimedia/linux-divx4linux4||2011-08-01|Has expired: No longer needed multimedia/ogle||2011-08-01|Has expired: Abandonware multimedia/ogle-gui||2011-08-01|Has expired: Abandonware multimedia/okle||2011-08-01|Has expired: Abandonware multimedia/subconv||2011-08-01|Has expired: Looks like abandonware, no more public distfiles net/callgen323||2011-08-01|Has expired: Looks like abandonware, no more public distfiles net/lyntin||2011-08-01|Has expired: No longer under active development net/py-rt||2011-08-01|Has expired: Looks like abandonware, no more public distfiles net/traffic||2011-08-01|Has expired: Looks like abandonware, no more public distfiles net-im/gnomeicu||2011-08-01|Has expired: No longer maintained upstream, use net-im/empathy instead net-mgmt/trafd||2011-08-01|Has expired: Looks like abandonware, no more public distfiles net-p2p/gkrellm-gift||2011-08-01|Has expired: Looks like abandonware, no more public distfiles news/bgrab||2011-08-01|Has expired: Looks like abandonware, no more public distfiles news/rkive||2011-08-01|Has expired: Looks like abandonware, no more public distfiles polish/sap||2011-08-01|Has expired: Looks like abandonware, no more public distfiles devel/eboxy||2011-08-01|Removed: depends on expired sdl_gui russian/messarge||2011-08-01|Has expired: Looks like abandonware, no more public distfiles russian/pgp.language||2011-08-01|Has expired: Looks like abandonware, no more public distfiles security/ifd-gempc410||2011-08-01|Has expired: Looks like abandonware, no more public distfiles security/libidea||2011-08-01|Has expired: Looks like abandonware, no more public distfiles security/rain||2011-08-01|Has expired: Looks like abandonware, no more public distfiles sysutils/Tee||2011-08-01|Has expired: No more public distfile sysutils/i855vidctl10||2011-08-01|Has expired: No more public distfiles sysutils/rsyslog3-snmp||2011-08-01|Has expired: unsupported upstream sysutils/xapply||2011-08-01|Has expired: No more public distfiles textproc/diff-mode.el||2011-08-01|Has expired: Looks like abandonware, no more public distfiles vietnamese/gtk-im-vi||2011-08-01|Has expired: Looks like abandonware, no more public distfiles www/campsite||2011-08-01|Has expired: Does not work www/p5-PLP||2011-08-01|Has expired: No more upstream, looks like an abandonware www/wcol||2011-08-01|Has expired: Looks like abandonware, no more public distfiles x11-toolkits/sdl_gui||2011-08-01|Has expired: Looks like abandonware, no more public distfiles www/contenido||2011-08-01|Has expired: ancient version of PHP needed audio/rio||2011-08-02|Has expired: Looks like abandonware, no more public distfiles audio/ruby-musicextras||2011-08-02|Has expired: Upcoming ruby-gnome removes dependencies deskutils/sshmenu||2011-08-02|Has expired: Upcoming ruby-gnome removes dependencies science/gave||2011-08-02|Has expired: Upcoming ruby-gnome removes dependencies x11-themes/gnome-art||2011-08-02|Has expired: Upcoming ruby-gnome removes dependencies x11-themes/gnome-splashscreen-manager||2011-08-02|Has expired: Upcoming ruby-gnome removes dependencies databases/mysql-gui-tools||2011-08-02|Removed; broken for more than 6 months www/adblock|www/xpi-adblock|2011-08-02|Depends on obsolete SeaMonkey 1.1 www/bugmenot|www/bugmenot-firefox|2011-08-02|Depends on obsolete SeaMonkey 1.1 www/mozex|www/xpi-mozex|2011-08-02|Depends on obsolete SeaMonkey 1.1 www/preferential||2011-08-02|Depends on obsolete SeaMonkey 1.1 comms/ruby-serialport||2011-08-03|Has expired: Doesn't work with Ruby 1.9 databases/ruby-search-namazu||2011-08-03|Has expired: Doesn't work with Ruby 1.9 databases/ruby-sqlite||2011-08-03|Has expired: Doesn't work with Ruby 1.9 databases/rubygem-kirbybase||2011-08-03|Has expired: Doesn't work with Ruby 1.9 devel/ruby-eet||2011-08-03|Has expired: Doesn't work with Ruby 1.9 devel/ruby-filelock||2011-08-03|Has expired: Doesn't work with Ruby 1.9 devel/ruby-filemagic||2011-08-03|Has expired: Doesn't work with Ruby 1.9 devel/ruby-metaruby||2011-08-03|Has expired: Doesn't work with Ruby 1.9 devel/ruby-poll||2011-08-03|Has expired: Doesn't work with Ruby 1.9 devel/ruby-rrb||2011-08-03|Has expired: Doesn't work with Ruby 1.9 devel/ruby-strongtyping||2011-08-03|Has expired: Doesn't work with Ruby 1.9 devel/ruby-textbuf||2011-08-03|Has expired: Doesn't work with Ruby 1.9 graphics/ruby-graph||2011-08-03|Has expired: Doesn't work with Ruby 1.9 graphics/ruby-libpng||2011-08-03|Has expired: Doesn't work with Ruby 1.9 japanese/ruby-kakasi||2011-08-03|Has expired: Doesn't work with Ruby 1.9 lang/ruby-extensions||2011-08-03|Has expired: Doesn't work with Ruby 1.9 lang/ruby-lua||2011-08-03|Has expired: Doesn't work with Ruby 1.9 lang/ruby-perl||2011-08-03|Has expired: Doesn't work with Ruby 1.9 mail/ruby-tmail||2011-08-03|Has expired: Doesn't work with Ruby 1.9 math/ruby-bitset||2011-08-03|Has expired: Doesn't work with Ruby 1.9 math/ruby-bitvector||2011-08-03|Has expired: Doesn't work with Ruby 1.9 math/ruby-gmp||2011-08-03|Has expired: Doesn't work with Ruby 1.9 net/ruby-mpi||2011-08-03|Has expired: Doesn't work with Ruby 1.9 net/ruby-nis||2011-08-03|Has expired: Doesn't work with Ruby 1.9 net/ruby-pcap||2011-08-03|Has expired: Doesn't work with Ruby 1.9 net/ruby-romp||2011-08-03|Has expired: Doesn't work with Ruby 1.9 net/ruby-spread||2011-08-03|Has expired: Doesn't work with Ruby 1.9 print/ruby-pdflib||2011-08-03|Has expired: Doesn't work with Ruby 1.9 security/ruby-aes||2011-08-03|Has expired: Doesn't work with Ruby 1.9 security/ruby-blowfish||2011-08-03|Has expired: Doesn't work with Ruby 1.9 security/ruby-cast_256||2011-08-03|Has expired: Doesn't work with Ruby 1.9 security/ruby-mcrypt||2011-08-03|Has expired: Doesn't work with Ruby 1.9 security/ruby-pam||2011-08-03|Has expired: Doesn't work with Ruby 1.9 sysutils/ruby-log4r||2011-08-03|Has expired: Doesn't work with Ruby 1.9 textproc/ruby-csv||2011-08-03|Has expired: Doesn't work with Ruby 1.9 textproc/ruby-formvalidator||2011-08-03|Has expired: Doesn't work with Ruby 1.9 textproc/ruby-gdome||2011-08-03|Has expired: Doesn't work with Ruby 1.9 textproc/ruby-htmltools||2011-08-03|Has expired: Doesn't work with Ruby 1.9 textproc/ruby-nqxml||2011-08-03|Has expired: Doesn't work with Ruby 1.9 textproc/ruby-quixml||2011-08-03|Has expired: Doesn't work with Ruby 1.9 textproc/ruby-raspell||2011-08-03|Has expired: Doesn't work with Ruby 1.9 textproc/ruby-tempura||2011-08-03|Has expired: Doesn't work with Ruby 1.9 textproc/ruby-xtemplate||2011-08-03|Has expired: Doesn't work with Ruby 1.9 www/ruby-tmpl||2011-08-03|Has expired: Doesn't work with Ruby 1.9 x11/gcursor||2011-08-03|No longer maintained upstream www/firefox35||2011-08-03|Has expired: Upstream support dropped. Please consider using www/firefox instead www/firefox35-i18n||2011-08-03|Has expired: Upstream support dropped. Please consider using www/firefox-i18n instead graphics/leptonlib|graphics/leptonica|2011-08-05|Follow upstream name change lang/gnustep-libobjc|lang/libobjc2|2011-08-06|Replaced with libobjc2 sysutils/p5-mogilefs-server|sysutils/p5-MogileFS-Server|2011-08-08|Move to a better place via repocopy devel/fossology||2011-08-09|Has expired: Broken for four months with no one caring deskutils/alexandria||2011-08-10|Has expired: Upcoming ruby-gnome removes dependencies security/drweb||2011-08-10|Has expired: fails to fetch (website rearranged) security/drweb-postfix||2011-08-10|Has expired: fails to fetch (website rearranged) security/drweb-qmail||2011-08-10|Has expired: fails to fetch (website rearranged) security/drweb-sendmail||2011-08-10|Has expired: fails to fetch (website rearranged) math/hs-category-extras||2011-08-14|Removed: this package is obsolete lang/p5-POE-Component-Hailo||2011-08-14|Removed java/jdk14-doc|java/jdk16-doc|2011-08-14|Removed: jdk14 has been removed audio/coverhunter||2011-08-14|Has expired: required Amazon Developer Tokens are no longer available databases/gauche-gdbm||2011-08-14|Has expired: has been broken for more than a year www/wiliki||2011-08-14|Removed: depends on expired gauche-gdbm mail/scmail||2011-08-14|Removed: depends on expired gauche-gdbm x11-themes/fluxbox-sid-pack||2011-08-14|Has expired: No longer maintained upstream japanese/ical||2011-08-15|Removed lang/ocamlduce||2011-08-16|Has expired: has been broken for over a year devel/cl-asdf-binary-locations||2011-08-16|Obsoleted by ASDF 2 capabilities devel/py-istring||2011-08-17|Has expired: port is unmaintained and broken mail/sylpheed3|mail/sylpheed|2011-08-22|Removed: please use mail/sylpheed instead www/p5-FastCGI|www/p5-FCGI|2011-08-23|Rename to reflect official module name databases/db51|databases/db5|2011-08-26|Removed: please use the newer databases/db5 instead chinese/firebird||2011-08-30|Has expired: Broken, maintainer timed out, untouched for five years www/drupal5-securepages||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-xmlsitemap||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-token||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-cck||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-disknode||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-views||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-ubercart||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-taxonomy_access||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-insert-view||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-thickbox||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-taxonomy_ticker||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-tinymce||2011-08-30|Has expired: Use drupal[67] instead www/drupal5||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-adsense||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-tagadelic||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-imagefield||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-nodewords||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-bluebreeze||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-imagecache||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-nice_menus||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-ubrowser||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-google_analytics||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-bookreview||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-tapir||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-i18n||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-simplenews||2011-08-30|Has expired: Use drupal[67] instead www/drupal5-workflow_ng||2011-08-30|Has expired: Use drupal[67] instead astro/gkrellmoon||2011-09-01|Has expired: Abandonware astro/spacechart||2011-09-01|Has expired: Abandonware audio/adpcm||2011-09-01|Has expired: No more public distfiles audio/aube||2011-09-01|Has expired: Abandonware audio/festvox-aec||2011-09-01|Has expired: Broken for more than 6 months audio/gtkgep||2011-09-01|Has expired: Abandonware audio/gtkhirad||2011-09-01|Has expired: No more public distfiles audio/opmixer||2011-09-01|Has expired: No more upstream audio/swami||2011-09-01|Has expired: Abandonware audio/xmms-sndstretch||2011-09-01|Has expired: No Master Site cad/linux-gid||2011-09-01|Has expired: No more public distfiles chinese/gbscript||2011-09-01|Has expired: No more public distfiles chinese/mplayer-fonts||2011-09-01|Has expired: No more public distfiles chinese/oxford||2011-09-01|Has expired: No more public distfiles chinese/vflib||2011-09-01|Has expired: No more public distfiles databases/mysql++||2011-09-01|Has expired: No more public distfiles databases/mysql_last_value||2011-09-01|Has expired: No Master Site databases/p5-DBIx-Table||2011-09-01|Has expired: No more public distfiles deskutils/gkrellm-gtodo||2011-09-01|Has expired: No more public distfiles deskutils/xopps||2011-09-01|Has expired: No more public distfiles devel/adocman||2011-09-01|Has expired: No more public distfiles devel/bisongen||2011-09-01|Has expired: No more public distfiles devel/crow||2011-09-01|Has expired: Broken for more than 6 months devel/p5-Config-INI-MVP||2011-09-01|Has expired: Disappear from CPAN devel/p5-Date-Set||2011-09-01|Has expired: Disappear from CPAN devel/p5-File-FTS||2011-09-01|Has expired: No more public distfiles devel/p5-PerlMenu||2011-09-01|Has expired: No more public distfiles devel/p5-Proc-PIDFile||2011-09-01|Has expired: No more public distfiles devel/p5-UNIVERSAL-exports||2011-09-01|Has expired: Disappear from CPAN devel/ruby-rbtree||2011-09-01|Has expired: No Master Site dns/host||2011-09-01|Has expired: No more public distfiles emulators/linux-padjoy||2011-09-01|Has expired: No more public distfiles emulators/mame-extras||2011-09-01|Has expired: No more public distfiles emulators/snespp||2011-09-01|Has expired: Broken for more than 6 months emulators/xgs||2011-09-01|Has expired: No more public distfiles ftp/gproftpd||2011-09-01|Has expired: No more public distfiles ftp/muddleftpd||2011-09-01|Has expired: No more public distfiles audio/gx2osd||2011-09-03|Has expired: No more public distfiles devel/p5-Getopt-Mixed||2011-09-03|Use devel/p5-Getopt-Long instead net/AquaGatekeeper2||2011-09-03|Binary port of software abandoned by the vendor net/xwhois||2011-09-03|Unmaintained upstream for several years www/p5-Catalyst-Engine-HTTP-POE||2011-09-03|Use p5-Catalyst-Engine-HTTP-Prefork instead www/p5-Catalyst-Model-DBIC||2011-09-03|Obsoleted by www/p5-Catalyst-Model-DBIC-Schema www/p5-Catalyst-Plugin-Cache-Store-FastMmap||2011-09-03|Deprecated, not depended on www/p5-HTTP-MobileAttribute||2011-09-03|Use www/p5-HTTP-MobileAgent instead irc/ptlink-ircd||2011-09-03|Has expired: No upstream source, no distfile and no maintainer irc/ptlink-services||2011-09-03|Has expired: No upstream source, no distfile and no maintainer www/mediawiki115||2011-09-03|Unsupported upstream www/p5-Catalyst-Plugin-Authentication-Store-DBIC||2011-09-03|Use p5-Catalyst-Authentication-Store-DBIx-Class instead net/uproxy||2011-09-04|Master site disappeared, abandonware x11/ebuttons||2011-09-05|Has expired: Website has disappeared cad/oregano||2011-09-05|Has expired: Website has disappeared devel/jakelib2||2011-09-05|Has expired: Website has disappeared x11-wm/epiwm||2011-09-07|Has expired: Abandonware x11-toolkits/p5-GdkPixbuf||2011-09-07|Has expired: Disappear from CPAN x11-toolkits/XawPlus||2011-09-07|Has expired: No more public distfiles x11-fonts/gnome-font-sampler||2011-09-07|Has expired: No more public distfiles www/xitami||2011-09-07|Has expired: No more public distfiles www/webredirect||2011-09-07|Has expired: No more public distfiles www/webglimpse||2011-09-07|Has expired: No more public distfiles www/squishdot||2011-09-07|Has expired: No more public distfiles www/py-forgethtml||2011-09-07|Has expired: No more public distfiles www/mmosaic||2011-09-07|Has expired: No more public distfiles www/ljsm||2011-09-07|Has expired: No more public distfiles www/ljpms||2011-09-07|Has expired: No more public distfiles www/ashe||2011-09-07|Has expired: No more public distfiles textproc/europass-xsl||2011-09-07|Has expired: Broken for more than 6 months textproc/carthage||2011-09-07|Has expired: No more public distfiles korean/hlatexfonts-ocf||2011-09-07|Has expired: No more public distfiles korean/pgp.language||2011-09-07|Has expired: No more public distfiles games/xgammon||2011-09-07|Has expired: No more public distfiles korean/hanIM||2011-09-07|Has expired: No more public distfiles misc/gplbp||2011-09-07|Has expired: No more public distfiles net/vyqchat||2011-09-07|Has expired: No more public distfiles news/xmitbin||2011-09-07|Has expired: No more public distfiles games/tvp||2011-09-07|Has expired: No more public distfiles games/glasteroids||2011-09-07|Has expired: No more public distfiles korean/hanmiscutils||2011-09-07|Has expired: No more public distfiles net-p2p/hagelslag||2011-09-07|Has expired: No more public distfiles games/cgoban2||2011-09-07|Has expired: No more public distfiles games/krosswordplayer||2011-09-07|Has expired: No more public distfiles korean/helvis||2011-09-07|Has expired: No more public distfiles print/mgv||2011-09-07|Has expired: No more public distfiles japanese/linux-JM||2011-09-07|Has expired: No more public distfiles games/xlines||2011-09-07|Has expired: No more public distfiles games/xgame||2011-09-07|Has expired: No more public distfiles net/ttt||2011-09-07|Has expired: No more public distfiles games/merlin||2011-09-07|Has expired: No more public distfiles games/slige||2011-09-07|Has expired: No more public distfiles games/wmtimebomb||2011-09-07|Has expired: No more public distfiles net-mgmt/cfgstoragemk||2011-09-07|Has expired: No more public distfiles mail/libspf2-10||2011-09-09|Vulnerable, use mail/libspf2 instead mail/postfix-policyd-spf||2011-09-09|Relies on vulnerable mail/libspf2-10 multimedia/bmpx||2011-09-11|Has expired: Broken for more than 6 months editors/openoffice.org-2|editors/openoffice.org-3|2011-09-20|Unsupported upstream and vulnerable devel/monodevelop-boo||2011-09-21|Removed www/ruby-http-access||2011-09-22|Has expired: Deprecated upstream, please use www/rubygem-httpclient sysutils/wots||2011-09-22|Has expired: No more public distfiles sysutils/plod||2011-09-22|Has expired: No more public distfiles sysutils/checkservice||2011-09-22|Has expired: Broken for more than 6 months security/nsm-console||2011-09-22|Has expired: Broken for more than 6 months security/fressh||2011-09-22|Has expired: No more public distfiles palm/pose||2011-09-22|Has expired: No more public distfiles palm/isilo||2011-09-22|Has expired: No more public distfiles news/ija||2011-09-22|Has expired: Broken for more than 6 months news/PicMonger||2011-09-22|Has expired: Abandonware net/py-zopeproxy|net/py-zope.proxy|2011-09-23|Removed: please use net/py-zope.proxy instead devel/libnotifymm||2011-09-23|Has expired: Doesn't build and isn't used by anything games/abuse||2011-09-23|Has expired: Broken after games/abuse_sdl update security/donkey||2011-09-23|Has expired: No more public distfiles graphics/moth||2011-09-23|Has expired: No more public distfiles net-mgmt/aguri||2011-09-23|Has expired: No more public distfiles games/senso||2011-09-23|Has expired: No more public distfiles net-im/jabber-users-agent||2011-09-23|Has expired: No more public distfiles games/cchess||2011-09-23|Has expired: No more public distfiles devel/git-annex|devel/hs-git-annex|2011-09-26|It has become a Cabal transcript devel/py-zopetesting|devel/py-zope.testing|2011-09-27|Removed: please use devel/py-zope.testing instead astro/boinc-milkyway||2011-09-27|No longer useful www/linux-firefox-devel|www/linux-firefox|2011-09-27|Older than www/linux-firefox graphics/pgperl|graphics/p5-PGPLOT|2011-09-28|Move to a better place via repocopy devel/py-zopeInterface|devel/py-zope.interface|2011-09-29|Removed: please use devel/py-zope.interface instead audio/mt-daapd||2011-09-30|Use audio/firefly instead databases/p5-DBIx-Class-Validation||2011-09-30|Depends on textproc/p5-FormValidator-Simple, which is DEPRECATED devel/p5-Class-Data-Accessor||2011-09-30|Please consider using p5-Class-Accessor-Grouped or p5-Moose graphics/libflash||2011-09-30|gplflash is no longer supported, please use gnash instead graphics/flashplayer||2011-09-30|Depends on DEPRECATED graphics/libflash japanese/p5-FormValidator-Simple-Plugin-Number-Phone-JP||2011-09-30|Depends on textproc/p5-FormValidator-Simple, which is DEPRECATED net/p5-OAuth-Lite||2011-09-30|Depends on devel/p5-Class-Data-Accessor, which is DEPRECATED net-mgmt/py-snmp||2011-09-30|Use net-mgmt/py-snmp4 instead net-mgmt/py-twistedSNMP||2011-09-30|Relies on net-mgmt/py-snmp, which is DEPRECATED net-p2p/gift||2011-09-30|Unmaintained upstream for several years net-p2p/giftcurs||2011-09-30|Unmaintained upstream for several years net-p2p/giftoxic||2011-09-30|Unmaintained upstream for several years net-p2p/giftui||2011-09-30|Unmaintained upstream for several years net-p2p/apollon||2011-09-30|Depends on net-p2p/gift, which is DEPRECATED textproc/p5-FormValidator-Simple||2011-09-30|Depends on devel/p5-Class-Data-Accessor, which is DEPRECATED www/flashplugin-mozilla||2011-09-30|gplflash is no longer supported, please use graphics/gnash www/p5-HTML-Widget||2011-09-30|Depends on devel/p5-Class-Data-Accessor, which is DEPRECATED www/p5-Catalyst-Plugin-AutoRestart||2011-09-30|Depends on devel/p5-Class-Data-Accessor, which is DEPRECATED www/p5-Catalyst-Example-InstantCRUD||2011-09-30|Depends on www/p5-HTML-Widget, which is DEPRECATED www/p5-Catalyst-Plugin-FormValidator-Simple||2011-09-30|Depends on textproc/p5-FormValidator-Simple, which is DEPRECATED www/p5-Catalyst-Plugin-HTML-Widget||2011-09-30|Depends on www/p5-HTML-Widget, which is DEPRECATED www/asterisk-fop||2011-09-30|Depends on www/flashplugin-mozilla which is DEPRECATED www/p5-Handel||2011-09-30|Depends on textproc/p5-FormValidator-Simple, which is DEPRECATED www/p5-DBIx-Class-HTMLWidget||2011-09-30|Depends on www/p5-HTML-Widget, which is DEPRECATED www/p5-HTML-Widget-DBIC||2011-09-30|Disappear from CPAN x11-wm/fvwm24||2011-09-30|No longer supported by fvwm.org math/mupad||2011-09-30|Relies on xpm, vulnerable since 2004-09-15 net-p2p/torrentflux||2011-09-30|Vulnerable since 2006-10-07 net/tptest||2011-09-30|Vulnerable since 2009-12-17 security/pgp6||2011-09-30|Vulnerable since 2005-07-31 www/p5-RTx-RightsMatrix||2011-09-30|Only works with www/rt36, which is FORBIDDEN www/p5-RTx-Shredder||2011-09-30|Only works with www/rt36, which is FORBIDDEN www/p5-RTx-Statistics||2011-09-30|Only works with www/rt36, which is FORBIDDEN www/rt36||2011-09-30|Vulnerable since 2009-12-09 www/zope-archetypes||2011-09-30|Depends on www/plone, which is FORBIDDEN www/zope-calendaring||2011-09-30|Depends on www/plone, which is FORBIDDEN www/zope-coreblog2||2011-09-30|Depends on www/plone, which is FORBIDDEN www/zope-i18nlayer||2011-09-30|Depends on www/plone, which is FORBIDDEN www/zope-plonelanguagetool||2011-09-30|Depends on www/plone, which is FORBIDDEN www/zope-simpleblog||2011-09-30|Depends on www/plone, which is FORBIDDEN dns/nsd2||2011-09-30|EOL since 2007, unsupported. Use dns/nsd instead audio/orpheus|audio/cmus|2011-10-01|Has expired: Contains problem with autotools, security CVE-2005-3863. Use audio/cmus instead sysutils/syslog-ng3-devel|sysutils/syslog-ng-devel|2011-10-04|Port renamed sysutils/cfvers||2011-10-04|Has expired: Dead upstream, author disowns it, use git/hg instead devel/p5-Scalar-Util-Clone||2011-10-05|Disappear from CPAN print/lyx14||2011-10-05|Has expired: last release in 2007, use print/lyx16 or print/lyx instead multimedia/enjoympeg||2011-10-05|Has expired: Looks like abandonware, no more public distfiles devel/py-zopeevent|devel/py-zope.event|2011-10-08|Removed: please use devel/py-zope.event instead astro/gkrellsun||2011-10-08|Abandonware astro/xrmap||2011-10-08|No more public distfiles audio/midimountain||2011-10-08|Abandonware audio/gkrellmss||2011-10-08|Abandonware audio/gnapster||2011-10-08|Abandonware databases/xbase||2011-10-08|No more public distfiles databases/xbsql||2011-10-08|No more public distfiles games/gtkabale||2011-10-08|No more public distfiles games/battleball||2011-10-08|No more public distfiles, does not compile on ia64 or sparc64 games/race||2011-10-08|No more public distfiles games/stvef-paks||2011-10-08|No more public distfiles games/stvef-server||2011-10-08|No more public distfiles games/tome||2011-10-08|No more public distfiles games/qkmj||2011-10-08|No more public distfiles games/oilwar||2011-10-08|No more public distfiles games/xbaby||2011-10-08|No more public distfiles games/xword||2011-10-08|Abandonware games/kslide||2011-10-08|No more public distfiles graphics/xmrm||2011-10-08|No more public distfiles, does not compile on amd64 or sparc64 graphics/giftrans||2011-10-08|Upstream disappeared and distfile is not available graphics/wildmagic||2011-10-08|Broken for more than 6 months, does not fetch irc/ircd-rusnet||2011-10-08|No more public distfiles irc/tkirc||2011-10-08|No more public distfiles korean/mizifont||2011-10-08|No more public distfiles lang/freetxl||2011-10-08|No more public distfiles math/nsc2ke||2011-10-08|No more public distfiles misc/mgp-mode.el||2011-10-08|No more public distfiles multimedia/p5-RIFF-Info||2011-10-08|No more public distfiles net/p5-Net-OpenDHT||2011-10-08|No more public distfiles net/mudix||2011-10-08|No more public distfiles net-im/newsbot||2011-10-08|No more public distfiles net-im/libicq2000||2011-10-08|Abandonware net-im/gossip||2011-10-08|No longer maintained upstream, use net-im/empathy instead net-im/ickle||2011-10-08|Abandonware net-mgmt/nipper||2011-10-08|Broken for more than 6 months, does not fetch net-p2p/mldonkey-serverspy||2011-10-08|No more public distfiles news/p5-Gateway||2011-10-08|No more public distfiles print/epsmerge||2011-10-08|No more public distfiles science/at||2011-10-08|No more public distfiles science/pyvox||2011-10-08|No more public distfiles security/p5-Email-Obfuscate||2011-10-08|No more public distfiles security/libparanoia||2011-10-08|No more public distfiles security/execwrap||2011-10-08|No more public distfiles audio/p5-MusicBrainz-TRM||2011-10-08|Disappeared from CPAN mail/p5-Mail-QuoteWrap||2011-10-08|Disappeared from CPAN www/p5-Catalyst-Plugin-FormCanary||2011-10-08|Disappeared from CPAN security/snort_inline||2011-10-09|Does not build properly, no longer supported upstream databases/ruby-pg|databases/rubygem-pg|2011-10-10|Replaced by rubygem-pg databases/rubygem-postgres|databases/rubygem-pg|2011-10-10|Replaced by rubygem-pg databases/ruby-postgres|databases/rubygem-pg|2011-10-10|Replaced by rubygem-pg archivers/pecl-phar||2011-10-14|Vulnerable since 2011-01-13 comms/libsyncml||2011-10-14|Depends on devel/libsoup22, which is FORBIDDEN databases/mysql323-server||2011-10-14|Vulnerable since 2006-10-29 databases/mysql323-client||2011-10-14|Vulnerable since 2006-10-29 databases/mysql323-scripts||2011-10-14|Vulnerable since 2006-10-29 databases/mysql40-server||2011-10-14|Vulnerable since 2006-10-29 databases/mysql40-client||2011-10-14|Vulnerable since 2006-10-29 databases/mysql40-scripts||2011-10-14|Vulnerable since 2006-10-29 databases/p5-DBD-mysql40||2011-10-14|Depends on databases/mysql40-server, which is FORBIDDEN deskutils/buoh||2011-10-14|Depends on devel/libsoup22, which is FORBIDDEN deskutils/libopensync-plugin-syncml||2011-10-14|Depends on comms/libsyncml, which is DEPRECATED devel/libsoup22||2011-10-14|Vulnerable since 2011-07-28 dns/bind9-sdb-ldap||2011-10-14|Vulnerable since 2011-06-04 dns/bind9-sdb-postgresql||2011-10-14|Vulnerable since 2011-06-04 ftp/wgetpro||2011-10-14|Vulnerable since 2004-12-14 games/quake2forge||2011-10-14|Vulnerable since 2005-01-21 japanese/mutt||2011-10-14|Vulnerable since 2007-07-29 japanese/asterisk14-sounds||2011-10-14|Depends on net/asterisk14, which is FORBIDDEN net/isc-dhcp3-devel||2011-10-14|Vulnerable since 2011-04-10 net/isc-dhcp31-client||2011-10-14|Vulnerable since 2011-04-10 net/isc-dhcp31-server||2011-10-14|Vulnerable since 2011-04-10 net/isc-dhcp31-relay||2011-10-14|Vulnerable since 2011-04-10 net/asterisk-app-ldap||2011-10-14|Depends on net/asterisk14, which is FORBIDDEN net/asterisk-app-notify||2011-10-14|Depends on net/asterisk14, which is FORBIDDEN net/astfax||2011-10-14|Depends on net/asterisk14, which is FORBIDDEN net-mgmt/nagios2||2011-10-14|Vulnerable since 2009-06-30 www/gforge||2011-10-14|Vulnerable since 2005-08-09 www/linux-flashplugin7||2011-10-14|Vulnerable since at least 2008-05-30 www/plone3||2011-10-14|Vulnerable and unsupported upstream www/serendipity-devel||2011-10-14|Vulnerable since 2008-04-25 www/ziproxy||2011-10-14|Vulnerable since 2010-06-15 www/asterisk-gui||2011-10-14|Depends on net/asterisk14, which is FORBIDDEN databases/dbmetrix||2011-10-14|Depends on databases/mysql323-client, which is FORBIDDEN databases/xmysqladmin||2011-10-14|Depends on databases/mysql323-client, which is FORBIDDEN devel/subversion-freebsd||2011-10-16|Merged with devel/subversion accessibility/ktts|accessibility/jovie|2011-10-16|Renamed upstream misc/konq-plugins-kde4||2011-10-16|Merged with x11/kde4-baseapps misc/nepomukcontroller||2011-10-16|Merged with x11/kde4-runtime x11/kdebase4|x11/kde4-baseapps|2011-10-16|Renamed upstream x11/kdebase4-runtime|x11/kde4-runtime|2011-10-16|Renamed upstream x11/kdebase4-workspace|x11/kde4-workspace|2011-10-16|Renamed upstream deskutils/lightning|www/seamonkey|2011-10-19|Superseded by LIGHTNING option in SeaMonkey deskutils/lightning-thunderbird|mail/thunderbird|2011-10-19|Superseded by LIGHTNING option in Thunderbird mail/enigmail-seamonkey2|mail/enigmail-seamonkey|2011-10-19|Depends on outdated and vulnerable SeaMonkey 2.0 www/seamonkey2-i18n|www/seamonkey-i18n|2011-10-19|Depends on outdated and vulnerable SeaMonkey 2.0 www/seamonkey2|www/seamonkey|2011-10-19|Upstream support dropped and multiple vulnerabilities security/py-arm||2011-10-20|Renamed to security/arm devel/boost-pyste||2011-10-22|Has expired: Still requires GCC 3.4 (strictly) and gccxml which is deprecated (and has been broken for a while) devel/gccxml||2011-10-22|Has expired: Unmaintained upstream, still requires GCC 3.4 (strictly), just used by boost-pyste which is of archaeological interest only itself java/java-tutorial||2011-10-23|Has expired: disappeared from vendor a long time ago lang/smarteiffel||2011-10-23|Has expired: Dead upstream, broken on amd64 with gcc>4 sysutils/syslog-ng1||2011-10-24|Has expired: Suggested by syslog-ng upline, no longer supported www/tomcat41||2011-10-24|No more upstream support graphics/gnash-devel||2011-10-24|Outdated, use graphics/gnash instead net-p2p/transmisson-remote-gui|net-p2p/transmission-remote-gui|2011-10-25|Renamed to net-p2p/transmission-remote-gui x11-wm/fvwm2-devel||2011-10-25|Has expired: No longer supported by fvwm.org devel/py-myghtyutils||2011-10-27|Has expired: Merged into Beaker; use www/py-beaker instead www/myghty||2011-10-27|Has expired: Upstream suggests textproc/py-mako instead astro/weatherget||2011-10-27|Has expired: Broken b/c of weather.com new licensing rules not agreed by author devel/py-reverse||2011-10-27|Has expired: now part of pylint devel/py-vmaps||2011-10-27|Has expired: author recommends using math/py-numpy instead devel/rubygem-rack-protection||2011-10-28|Removed graphics/tumbler|deskutils/xfce4-tumbler|2011-10-29|Duplicate ports merged graphics/poppler-gtk|graphics/poppler-glib|2011-10-31|Move to match library name audio/mp3butler||2011-10-31|Depends on audio/p5-MusicBrainz-Client which is DEPRECATED audio/p5-MusicBrainz-Client||2011-10-31|Disappeared from CPAN editors/doxymacs||2011-10-31|Depends on www/w3-4, which is DEPRECATED graphics/libart||2011-10-31|Does not fetch, no more public distfiles java/jboss4||2011-10-31|Does not build with new ant korean/hanterm||2011-10-31|Depends on korean/johabfonts, which is DEPRECATED, fails to build with new utmpx korean/johabfonts||2011-10-31|No more public distfiles, installs into / korean/hlatex-psfonts-uhc-extra||2011-10-31|Depends on korean/hlatex, which is DEPRECATED korean/texinfo||2011-10-31|Depends on korean/hlatex, which is DEPRECATED korean/hlatex||2011-10-31|No more public distfiles mail/jboss-mailservices||2011-10-31|Depends on java/jboss4, which is DEPRECATED misc/p5-Geography-NationalGrid-TW||2011-10-31|Depends on misc/p5-Geography-NationalGrid, which is DEPRECATED misc/p5-Geography-NationalGrid||2011-10-31|Disappeared from CPAN net/py-timeoutsocket||2011-10-31|Upstream disappeared and distfile is no longer available textproc/p5-XML-LibRSVG||2011-10-31|Unmaintained and not used anymore textproc/javacc||2011-10-31|No more public distfiles www/w3-4||2011-10-31|Upstream disappeared and distfile is no longer available www/commonist||2011-10-31|Depends on textproc/javacc, which is DEPRECATED www/newsfeed||2011-10-31|Depends on net/py-timeoutsocket, which is DEPRECATED x11/fbsd-icons||2011-10-31|Upstream disappeared and distfile is no longer available x11-themes/geramik||2011-10-31|Depends on x11-toolkits/qtpixmap, which is DEPRECATED x11-toolkits/qtpixmap||2011-10-31|No more public distfiles x11-wm/fvwm95-i18n||2011-10-31|Depends on x11/fbsd-icons, which is DEPRECATED x11-wm/fvwm95||2011-10-31|Depends on x11/fbsd-icons, which is DEPRECATED x11-toolkits/gambas2-gb-qt||2011-10-31|Has been broken for over a year archivers/gambas2-gb-compress-bzlib2||2011-10-31|Has been broken for over a year archivers/gambas2-gb-compress-zlib||2011-10-31|Has been broken for over a year audio/gambas2-gb-sdl-sound||2011-10-31|Has been broken for over a year databases/gambas2-gb-db-firebird||2011-10-31|Has been broken for over a year databases/gambas2-gb-db-mysql||2011-10-31|Has been broken for over a year databases/gambas2-gb-db-odbc||2011-10-31|Has been broken for over a year databases/gambas2-gb-db-postgresql||2011-10-31|Has been broken for over a year databases/gambas2-gb-db-sqlite2||2011-10-31|Has been broken for over a year databases/gambas2-gb-db-sqlite3||2011-10-31|Has been broken for over a year devel/gambas2-gb-corba||2011-10-31|Has been broken for over a year devel/gambas2-gb-pcre||2011-10-31|Has been broken for over a year devel/gambas2-gb-sdl||2011-10-31|Has been broken for over a year editors/gambas2-ide||2011-10-31|Has been broken for over a year ftp/gambas2-gb-net-curl||2011-10-31|Has been broken for over a year graphics/gambas2-gb-gtk-svg||2011-10-31|Has been broken for over a year graphics/gambas2-gb-image||2011-10-31|Has been broken for over a year graphics/gambas2-gb-opengl||2011-10-31|Has been broken for over a year graphics/gambas2-gb-pdf||2011-10-31|Has been broken for over a year lang/gambas2||2011-10-31|Has been broken for over a year lang/gambas2-base||2011-10-31|Has been broken for over a year lang/gambas2-components||2011-10-31|Has been broken for over a year lang/gambas2-examples||2011-10-31|Has been broken for over a year mail/gambas2-gb-net-smtp||2011-10-31|Has been broken for over a year net/gambas2-gb-net||2011-10-31|Has been broken for over a year security/gambas2-gb-crypt||2011-10-31|Has been broken for over a year textproc/gambas2-gb-xml||2011-10-31|Has been broken for over a year x11-toolkits/gambas2-gb-gtk||2011-10-31|Has been broken for over a year x11/gambas2-gb-desktop||2011-10-31|Has been broken for over a year x11/gambas2-gb-qt-kde||2011-10-31|Has been broken for over a year games/phpua-ut2003||2011-11-01|Has expired: depends on phpua-engine games/phpua-engine||2011-11-01|Has expired: apache13 is deprecated, migrate to 2.2.x+ now games/phpua-hl||2011-11-01|Has expired: depends on phpua-engine games/phpua-ut||2011-11-01|Has expired: depends on phpua-engine games/phpua-cod||2011-11-01|Has expired: depends on phpua-engine games/uox3||2011-11-01|Has expired: no more public distfiles games/phpua-q3||2011-11-01|Has expired: depends on phpua-engine games/phpua-bf||2011-11-01|Has expired: depends on phpua-engine graphics/kallery||2011-11-01|Has expired: does not build; last release 20010511 graphics/gtksee||2011-11-01|Has expired: depends on unfetchable port archivers/bzip; last release 2004 mail/mailscanner-mrtg||2011-11-01|Has expired: apache13 is deprecated, migrate to 2.2.x+ now net-p2p/qbittorrent-28-nox11|net-p2p/qbittorrent-nox11|2011-11-01|Has expired: please migrate to net-p2p/qbittorrent net-p2p/qbittorrent-28|net-p2p/qbittorrent|2011-11-01|Has expired: please migrate to net-p2p/qbittorrent net-p2p/dctc-gui-qt||2011-11-01|Removed net-p2p/dctc-gui||2011-11-01|Removed net-p2p/dctc||2011-11-01|Has expired: No more public distfiles www/slash||2011-11-01|Has expired: apache13 is deprecated, migrate to 2.2.x+ now databases/maatkit||2011-11-01|Has expired: upstream support dropped; please consider using databases/percona-toolkit databases/mysqlman||2011-11-01|Has expired: apache13 is deprecated, migrate to 2.2.x+ now databases/mysql-editor||2011-11-01|Has expired: apache13 is deprecated, migrate to 2.2.x+ now databases/gnats||2011-11-01|Has expired: security issues graphics/poppler-qt||2011-11-01|Poppler upstream removed support for Qt 3.x audio/linux-shoutcast||2011-11-01|Unfetchable; website rearranged chinese/scim-chewing||2011-11-01|Does not configure converters/py-cjkcodecs||2011-11-01|Integrated into every Python version in the tree databases/kpogre||2011-11-01|Does not compile deskutils/mhc||2011-11-01|Does not fetch deskutils/org-mode.el6||2011-11-01|Does not fetch deskutils/gemcal||2011-11-01|Does not fetch devel/erlang-thrift||2011-11-01|Does not build dns/domtools||2011-11-01|Does not fetch editors/richtext||2011-11-01|Does not compile games/vultures-claw||2011-11-01|Does not fetch games/bomb||2011-11-01|Does not fetch games/lgeneral-data||2011-11-01|Bad pkg-plist games/xphotohunter||2011-11-01|Does not fetch graphics/gimpshop||2011-11-01|Fails to patch graphics/lightspark-devel||2011-11-01|Does not compile graphics/xmms-plazma||2011-11-01|Does not fetch graphics/py-cgkit||2011-11-01|Does not fetch, does not compile on ia64, powerpc, or sparc64 japanese/rxvt||2011-11-01|Does not fetch, fails to build with new utmpx japanese/epic4||2011-11-01|Some distfiles do not fetch java/jde||2011-11-01|Does not fetch java/kaffe||2011-11-01|Does not fetch korean/gdick||2011-11-01|HTMLs from the Yahoo! Korea Dictionary cannot be parsed, other runtime problems korean/hanterm-xf86||2011-11-01|Does not compile korean/stardict2-dict-kr||2011-11-01|Does not fetch lang/p5-JavaScript||2011-11-01|Does not fetch lang/TenDRA||2011-11-01|Website disappeared; last release in 2006, does not compile on recent FreeBSD-9 mail/freepops||2011-11-01|Does not build mail/itraxp||2011-11-01|Does not build misc/tellico||2011-11-01|Leaves files behind on deinstallation net/gsambad||2011-11-01|Does not fetch net/nocatauth-gateway||2011-11-01|Uses a UID registered to another port net/nocatauth-server||2011-11-01|Uses a UID registered to another port net/kmuddy||2011-11-01|Does not fetch net/netboot||2011-11-01|Does not build net-mgmt/jffnms||2011-11-01|Does not fetch net-p2p/frostwire||2011-11-01|Does not fetch net-p2p/azureus||2011-11-01|Does not fetch news/cleanscore||2011-11-01|Does not fetch news/nntpswitch||2011-11-01|Does not fetch news/p5-NewsLib||2011-11-01|Does not fetch russian/cyrproxy||2011-11-01|Does not fetch science/gerris||2011-11-01|Does not fetch security/opensaml||2011-11-01|Does not fetch sysutils/wmbattery||2011-11-01|Does not fetch textproc/tei-guidelines-p4||2011-11-01|Does not fetch textproc/tei-p4||2011-11-01|Does not fetch textproc/py-hyperestraier||2011-11-01|Does not fetch textproc/tdtd.el||2011-11-01|Does not fetch textproc/tei-lite||2011-11-01|Does not fetch www/phpwiki13||2011-11-01|Does not fetch www/p5-Apache-Scoreboard||2011-11-01|Depends on mod_perl www/p5-B-LexInfo||2011-11-01|Broken due the new mod_perl2 API www/phpwiki||2011-11-01|Does not fetch www/smb2www||2011-11-01|Apache13 is deprecated, migrate to 2.2.x+ now www/spip||2011-11-01|Checksum is changing daily www/monkey||2011-11-01|Does not fetch x11-toolkits/jdic||2011-11-01|Does not fetch x11-toolkits/py-kde||2011-11-01|Does not compile sysutils/rsyslog3||2011-11-02|Has expired: unsupported upstream sysutils/rsyslog3-dbi||2011-11-02|Has expired: unsupported upstream sysutils/rsyslog3-gssapi||2011-11-02|Has expired: unsupported upstream sysutils/rsyslog3-mysql||2011-11-02|Has expired: unsupported upstream sysutils/rsyslog3-pgsql||2011-11-02|Has expired: unsupported upstream sysutils/rsyslog3-relp||2011-11-02|Has expired: unsupported upstream sysutils/rsyslog4-devel||2011-11-02|Is now stable; see sysutils/rsyslog4 sysutils/rsyslog4-devel-dbi||2011-11-02|Is now stable; see sysutils/rsyslog4 sysutils/rsyslog4-devel-gnutls||2011-11-02|Is now stable; see sysutils/rsyslog4 sysutils/rsyslog4-devel-gssapi||2011-11-02|Is now stable; see sysutils/rsyslog4 sysutils/rsyslog4-devel-mysql||2011-11-02|Is now stable; see sysutils/rsyslog4 sysutils/rsyslog4-devel-pgsql||2011-11-02|Is now stable; see sysutils/rsyslog4 sysutils/rsyslog4-devel-relp||2011-11-02|Is now stable; see sysutils/rsyslog4 sysutils/rsyslog4-devel-rfc3195||2011-11-02|Is now stable; see sysutils/rsyslog4 sysutils/rsyslog4-devel-snmp||2011-11-02|Is now stable; see sysutils/rsyslog4 www/php-yaf|www/pecl-yaf|2011-11-02|The project has been moved to PECL sysutils/xfce4-places-plugin||2011-11-06|Removed, integrated in Xfce 4.8 panel lang/p5-F77|lang/p5-ExtUtils-F77|2011-11-07|Move to a better place via repocopy devel/soup||2011-11-09|Has expired: Unmaintained, use devel/libsoup graphics/clutter-qt||2011-11-09|Has expired: upstream distfile disappeared, doesn't build, and doesn't seem to be developed anymore graphics/p5-clutter||2011-11-09|Has expired: upstream distfile disappeared, and doesn't seem to be developed anymore graphics/librsvg||2011-11-09|Has expired: unmaintained and not used anymore www/p5-Catalyst-Log-Log4perl||2011-11-09|Has expired: Use Log::Log4perl::Catalyst (devel/p5-Log-Log4perl) instead lang/open-cobol-devel||2011-11-09|Has expired: No activity since 2007 databases/py-axiom||2011-11-11|Has expired: Distfile is missing, runtime broken; use databases/py-sqlobject instead sysutils/duplicity-devel||2011-11-12|Much older than current version, use sysutils/duplicity instead security/libfwbuilder-devel||2011-11-14|libfwbuilder-devel merged into fwbuilder-devel russian/apache13||2011-11-15|Has expired: no active development and known security vulnerabilities devel/tortoisehg1|devel/tortoisehg2|2011-11-22|Has expired: does not work with current devel/mercurial, use tortoisehg2 mail/zms||2011-11-22|Has expired: No longer under development, since 2009 mail/dkim-milter|mail/opendkim|2011-11-23|Has expired: switch to mail/opendkim instead lang/gcc45|lang/gcc46|2011-11-23|Superseded by gcc46 japanese/pycodec-zope||2011-11-27|Has expired: Handled in Python-2.4 upwards japanese/zope-ejsplitter||2011-11-27|Has expired: Plone4 has newer and better splitter mechanism than ejSplitter japanese/zope-jamailhost||2011-11-27|Has expired: Zope has changed MailHost specification and it is not sure jaMailHost works well japanese/pycodec||2011-11-27|Has expired: Handled in Python-2.4 upwards net-im/py-turpial||2011-11-28|Renamed to net-im/turpial databases/p5-Mysql-Diff|databases/p5-MySQL-Diff|2011-11-28|Move to a better place via repocopy mail/gtray||2011-12-02|Has expired: Upcoming ruby-gnome update removes dependencies devel/ruby-gconf2||2011-12-05|Removed devel/ruby-gnomevfs||2011-12-05|Removed devel/ruby-libglade2||2011-12-05|Removed graphics/ruby-gnomecanvas2||2011-12-05|Removed graphics/ruby-libart2||2011-12-05|Removed print/ruby-gnomeprint||2011-12-05|Removed www/ruby-gtkhtml2||2011-12-05|Removed www/ruby-gtkmozembed||2011-12-05|Removed x11-toolkits/ruby-gnomeprintui||2011-12-05|Removed x11-toolkits/ruby-gtkglext||2011-12-05|Removed x11-toolkits/ruby-panelapplet||2011-12-05|Removed x11/ruby-gnome2-all||2011-12-05|Removed devel/zeroinstall-injector||2011-12-06|Duplicates PBI functionality, and 0install feeds are available as ports audio/py-taglib||2011-12-07|Only compatible with Python 2.4. Use audio/py-tagpy instead x11-wm/wmthemeinstall||2011-12-10|Abandonware: no more upstream, no more public distfiles databases/py-pysqlite20||2011-12-11|Unmaintained upstream, only useful for python2.4 or less, no consumers in the ports tree databases/py-pysqlite21||2011-12-11|Unmaintained upstream, only useful for python2.4 or less, no consumers in the ports tree databases/py-pysqlite22||2011-12-11|Unmaintained upstream, only useful for python2.4 or less, no consumers in the ports tree databases/py-pysqlite23||2011-12-11|Unmaintained upstream, only useful for python2.4 or less, no consumers in the ports tree databases/py-PySQLite10||2011-12-11|Unmaintained upstream, only useful for python2.4 or less, no consumers in the ports tree databases/py-PySQLite11||2011-12-11|Unmaintained upstream, only useful for python2.4 or less, no consumers in the ports tree converters/py-iconvcodec||2011-12-12|Included into python itself since version 2.4 devel/py-waf||2011-12-12|Port is outdated. Author discourages system-wide installation. Download it manually security/p5-Digest-SHA256||2011-12-20|Removed: use the built-in Digest::SHA instead net/mpd4||2011-12-21|Removed japanese/ruby-refe||2011-12-21|Has been broken for 11 months www/zope-epoz||2011-12-25|Unmaintained upstream, isn't used by anything math/mingw32-libgmp4|math/mingw32-libgmp|2011-12-25|Version is no longer 4 devel/py-kss.core|devel/py-kss-core|2011-12-26|Remove bad-named port (with .core in it's name) textproc/skribe||2011-12-28|Has expired emulators/wahcade||2011-12-28|Has expired databases/keximdb||2011-12-28|Has expired: Depends on editors/koffice-kde3, which is scheduled for deletion editors/koffice-kde3||2011-12-28|Has expired net/keepalived||2011-12-28|Has expired: Depends on net/ipvs, which is scheduled for deletion net/ipvs||2011-12-28|Has expired: Designed for FreeBSD 5.x, which is no longer supported databases/fireprofile||2011-12-28|Has expired audio/gnowavcut||2011-12-28|Has expired: Abandonware mail/demime||2011-12-28|Has expired: No upstream development since 2007 x11/wmmsg||2011-12-28|Has expired: No more public distfiles x11-toolkits/libgtkeditor||2011-12-28|Has expired: No longer supported upstream, not depended upon anymore misc/demoniac||2011-12-28|Has expired: No more upstream, no more public distfiles databases/clip||2011-12-28|Has expired: No upstream development for a long time x11-toolkits/gtkextra||2011-12-28|Has expired: no longer supported upstream, no more depend on www/xpi-mousegestures||2011-12-28|Has expired: Development has been ceased and not compatible with Firefox > 2 www/xpi-mozex||2011-12-28|Has expired: Development has been ceased and not compatible with Firefox > 3 sysutils/duplicity05||2012-01-01|Has expired: This version is out of date, and the 0.6.x branch is considered stable japanese/py-kanjilib||2012-01-01|Has expired: This port is not needed with any supported python version www/squid30||2012-01-01|Has expired: This version of Squid is no longer actively maintained upstream devel/slglade||2012-01-01|Has expired: Depends on non-functional x11-toolkits/slgtk x11-toolkits/slgtk||2012-01-01|Has expired: Does not work with newer GTK+, upstream development has ceased x11-toolkits/slgtkdatabox||2012-01-01|Has expired: Depends on non-functional x11-toolkits/slgtk www/apache13|www/apache22|2012-01-01|apache13 is deprecated, use www/apache22 www/apache-contrib||2012-01-01|Has expired: Depends on expired www/apache13 www/apache13+ipv6|www/apache22|2012-01-01|apache13 is deprecated, use www/apache22 www/apache13-modperl|www/apache22|2012-01-01|apache13 is deprecated, use www/apache22 www/apache13-modssl|www/apache22|2012-01-01|apache13 is deprecated, use www/apache22 www/apache13-modssl+ipv6|www/apache22|2012-01-01|apache13 is deprecated, use www/apache22 www/apache13-ssl|www/apache22|2012-01-01|apache13 is deprecated, use www/apache22 databases/p5-ApacheDBILogConfig||2012-01-01|Has expired: Depends on expired www/apache13 databases/p5-ApacheDBILogger||2012-01-01|Has expired: Depends on expired www/apache13 textproc/p5-Apache-XBEL||2012-01-01|Has expired: Depends on expired www/apache13 www/auth_ldap||2012-01-01|Has expired: Depends on expired www/apache13 www/kdedict||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_access_identd||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_access_referer||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_accounting||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_auth_cookie_mysql|www/mod_auth_cookie_mysql2|2012-01-01|Has expired: Depends on expired www/apache13 www/mod_auth_external|www/mod_auth_external2|2012-01-01|Has expired: Depends on expired www/apache13 www/mod_auth_imap|www/mod_auth_imap2|2012-01-01|Has expired: Depends on expired www/apache13 www/mod_auth_kerb|www/mod_auth_kerb2|2012-01-01|Has expired: Depends on expired www/apache13 www/mod_auth_mysql|www/mod_auth_mysql2|2012-01-01|Has expired: Depends on expired www/apache13 www/mod_auth_pam|www/mod_auth_pam2|2012-01-01|Has expired: Depends on expired www/apache13 www/mod_auth_pgsql|www/mod_auth_pgsql2|2012-01-01|Has expired: Depends on expired www/apache13 www/mod_auth_useragent||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_backhand||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_bandwidth||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_bf||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_blosxom||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_blowchunks||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_bunzip2||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_cgi_debug||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_color||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_curb||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_cvs|www/mod_cvs2|2012-01-01|Has expired: Depends on expired www/apache13 www/mod_dav||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_dtcl||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_extract_forwarded_ap13|www/mod_extract_forwarded|2012-01-01|Has expired: Depends on expired www/apache13 www/mod_filter||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_geoip|www/mod_geoip2|2012-01-01|Has expired: Depends on expired www/apache13 www/mod_gzip|www/mod_gzip2|2012-01-01|Has expired: Depends on expired www/apache13 www/mod_index_rss||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_layout|www/mod_layout22|2012-01-01|Has expired: Depends on expired www/apache13 www/mod_limitipconn|www/mod_limitipconn2|2012-01-01|Has expired: Depends on expired www/apache13 www/mod_log_spread||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_log_sql|www/mod_log_sql2|2012-01-01|Has expired: Depends on expired www/apache13 www/mod_macro|www/mod_macro22|2012-01-01|Has expired: Depends on expired www/apache13 www/mod_mp3||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_mylo||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_ntlm|www/mod_ntlm2|2012-01-01|Has expired: Depends on expired www/apache13 www/mod_perl|www/mod_perl2|2012-01-01|Has expired: Depends on expired www/apache13 www/mod_proxy_add_forward||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_put||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_python|www/mod_python3|2012-01-01|Has expired: Depends on expired www/apache13 www/mod_realip||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_rpaf|www/mod_rpaf2|2012-01-01|Has expired: Depends on expired www/apache13 www/mod_sed||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_sequester||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_shapvh||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_sqlinclude||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_ticket||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_trigger||2012-01-01|Has expired: Depends on expired www/apache13 www/mod_tsunami||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Apache-AntiSpam||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Apache-AuthenCache||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Apache-AuthenURL||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Apache-AutoIndex||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Apache-AxKit-Plugin-AddXSLParams-Request||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Apache-Clean|www/p5-Apache-Clean2|2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Apache-Compress||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Apache-CompressClientFixup||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Apache-DBI-mp1|www/p5-Apache-DBI|2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Apache-DebugInfo||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Apache-DumpHeaders||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Apache-Filter||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Apache-Icon||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Apache-Language||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Apache-NNTPGateway||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Apache-PageKit||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Apache-Peek||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Apache-Radius||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Apache-Reload||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Apache-SSI||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Apache-SubProcess||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Apache-Template||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-AxKit||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-AxKit-XSP-Cookie||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-AxKit-XSP-ESQL||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-AxKit-XSP-Exception||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-AxKit-XSP-IfParam||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-AxKit-XSP-Param||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-AxKit-XSP-PerForm||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-AxKit-XSP-Sendmail||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-AxKit-XSP-Util||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-AxKit-XSP-WebUtils||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Bundle-Slash||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Text-Markdown-ApacheHandler||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-libapreq|www/p5-libapreq2|2012-01-01|Has expired: Depends on expired www/apache13 www/p5-libapreq-static||2012-01-01|Has expired: Depends on expired www/apache13 www/web-traceroute||2012-01-01|Has expired: Depends on expired www/apache13 www/wget4web||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Apache-Test||2012-01-01|Has expired: Depends on expired www/apache13 net-im/jwchat||2012-01-01|Has expired: Depends on expired www/apache13 www/p5-Apache-DBI-mp2|www/p5-Apache-DBI|2012-01-01|This sub-port is no longer needed editors/ged||2012-01-04|Removed: Use ed from base instead ftp/proftpd-devel||2012-01-04|Removed devel/ruby-thrift|devel/rubygem-thrift|2012-01-04|Renamed: now a rubygems module x11-wm/cl-stumpwm||2012-01-04|Abandoned copy of x11-wm/stumpwm www/knowledgekit||2012-01-06|Development seems stalled. Last release is from 1999. Doesn't works with Zope 2.13 www/znavigator||2012-01-06|Development seems stalled. Last release is from 2000 www/zope-FileSystemSite||2012-01-06|Doesn't work with modern Zope versions www/zope-annotations||2012-01-06|Doesn't work with modern Zope versions www/zope-btreefolder2||2012-01-06|Doesn't work with modern Zope versions www/zope-cmfactionicons||2012-01-06|Doesn't work with modern Zope versions www/zope-cmfformcontroller||2012-01-06|Doesn't work with modern Zope versions www/zope-cmfforum||2012-01-06|Development seems stalled. Last release is from 2002 www/zope-cmfphoto||2012-01-06|Development seems stalled. Last release is from 2004 www/zope-cmfphotoalbum||2012-01-06|Development seems stalled. Last release is from 2004 www/zope-cmfquickinstaller||2012-01-06|Doesn't work with modern Zope versions www/zope-coreblog||2012-01-06|Development ceased www/zope-exuserfolder||2012-01-06|Doesn't work with modern Zope versions www/zope-formulator||2012-01-06|Doesn't work with modern Zope versions www/zope-generator||2012-01-06|Development seems stalled. Last release from 2005 www/zope-groupuserfolder||2012-01-06|Doesn't work with modern Zope versions www/zope-kupu||2012-01-06|Doesn't work with modern Zope versions www/zope-mimetypesregistry||2012-01-06|Doesn't work with modern Zope versions www/zope-mindmapbbs||2012-01-06|Development seems stalled. Last release is from 2004 www/zope-mysqluserfolder||2012-01-06|Development seems stalled. Last release is from 2005 www/zope-parsedxml||2012-01-06|Doesn't work with modern Zope versions www/zope-placelesstranslationservice||2012-01-06|Doesn't work with modern Zope versions www/zope-portaltransforms||2012-01-06|Doesn't work with modern Zope versions www/zope-proxyindex||2012-01-06|Doesn't work with modern Zope versions www/zope-silva||2012-01-06|Doesn't work with modern Zope versions www/zope-silvaviews||2012-01-06|Doesn't work with modern Zope versions www/zope-ttwtype||2012-01-06|Development seems stalled. Last release is from 2003 www/zope-validation||2012-01-06|Doesn't work with modern Zope versions www/zope-xmlmethods||2012-01-06|Development seems stalled. Last release is from 2003 www/zope-xmlwidgets||2012-01-06|Doesn't work with modern Zope versions www/zope-zmysqlda||2012-01-06|Doesn't work with modern Zope versions www/zope-zsyncer||2012-01-06|Doesn't work with modern Zope versions www/zope-zwiki||2012-01-06|Doesn't work with modern Zope versions www/zope210||2012-01-06|End of life is reached www/zope28||2012-01-06|End of life is reached www/zope29||2012-01-06|End of life is reached www/zope3||2012-01-06|End of life is reached x11-drivers/xf86-input-citron||2012-01-07|Removed multimedia/avifile||2012-01-08|Has expired: Broken for an extended period, superseded by other multimedia players devel/bonobo-conf||2012-01-08|Has expired: No longer supported upstream, not depended upon anymore www/typo343||2012-01-08|Has expired: Support will end in the near future, see http://typo3.org/download/packages/ for details devel/gnome-crash||2012-01-08|Has expired: No longer supported upstream, not depended upon anymore x11-toolkits/gob||2012-01-08|Has expired: No longer supported upstream, not depended upon anymore www/rubygem-htauth||2012-01-08|Has expired: broke for ~12 months www/instiki||2012-01-08|Has expired: has been marked ignore since 2010/09/16 mail/msmtpqueue||2012-01-08|Has expired: These scripts now come with mail/msmtp security/cryptplug||2012-01-08|Has expired: development has ceased security/gpgme03||2012-01-08|Has expired: superseded by security/gpgme databases/pear-Doctrine||2012-01-08|Has expired: Please upgrade to 1.2.x: http://svn.doctrine-project.org/tags/1.2.4/UPGRADE_TO_1_2 x11-themes/gtk-qn-x11-theme||2012-01-08|Has expired: No more public distfiles x11-themes/gtk-zenith-theme||2012-01-08|Has expired: No more public distfiles graphics/stl2pov|graphics/py-stl|2012-01-08|New port graphics/py-stl deprecates graphics/stl2pov devel/py-py_static_check|devel/py_static_check|2012-01-12|Rename for consistency databases/phpmyadmin211||2012-01-13|Has expired: No longer supported by the phpMyAdmin project www/xpi-autobrowse||2012-01-14|Has expired: Development has been ceased and not compatible with Firefox > 7 www/xpi-joga||2012-01-14|Has expired: Development has been ceased and not compatible with Firefox > 7 www/xpi-num2web||2012-01-14|Has expired: Development has been ceased and not compatible with Firefox > 7 www/xpi-savegenpage||2012-01-14|Has expired: Development has been ceased and not compatible with Firefox > 7 www/xpi-videodownloader||2012-01-14|Has expired: Development has been ceased and not compatible with Firefox > 7 www/xpi-xpcom-component-viewer||2012-01-14|Has expired: Development has been ceased and not compatible with Firefox > 7 net-im/skype20||2012-01-14|Has expired: old version without many of the newer features; please try net-im/skype instead sysutils/rsyslog4|sysutils/rsyslog5|2012-01-16|EOL Upstream sysutils/rsyslog4-dbi|sysutils/rsyslog5-dbi|2012-01-16|EOL Upstream sysutils/rsyslog4-gnutls|sysutils/rsyslog5-gnutls|2012-01-16|EOL Upstream sysutils/rsyslog4-gssapi|sysutils/rsyslog5-gssapi|2012-01-16|EOL Upstream sysutils/rsyslog4-mysql|sysutils/rsyslog5-mysql|2012-01-16|EOL Upstream sysutils/rsyslog4-pgsql|sysutils/rsyslog5-pgsql|2012-01-16|EOL Upstream sysutils/rsyslog4-relp|sysutils/rsyslog5-relp|2012-01-16|EOL Upstream sysutils/rsyslog4-rfc3195|sysutils/rsyslog5-rfc3195|2012-01-16|EOL Upstream sysutils/rsyslog4-snmp|sysutils/rsyslog5-snmp|2012-01-16|EOL Upstream net-im/gicq||2012-01-18|Runtime is broken. Unmaintained upstream net-im/libicq||2012-01-18|Runtime is broken. Unmaintained upstream devel/luajit|lang/luajit|2012-01-19|Compilers typically live in the lang category devel/p5-DBIx-Class-Schema-PopulateMore||2012-01-20|Removed textproc/qgoogletranslator||2012-01-20|Has expired: Runtime is broken because Google close free usage of API. Project closed www/py-rssdler||2012-01-25|Runtime is mostly broken, abandoned upstream. Use www/py-flexget instead ftp/proftpd-mysql|databases/proftpd-mod_sql_mysql|2012-01-26|Module now in slave port games/flightgear-aircrafts|games/flightgear-aircraft|2012-01-31|Renamed for better naming audio/wmmixer||2012-02-01|EOL Upstream; please use audio/wmsmixer instead x11-wm/xfce|x11-wm/xfce4|2012-02-02|Has expired: abandoned upstream, use x11-wm/xfce4 instead sysutils/py-dvdvideo|sysutils/dvdvideo|2012-02-03|Renamed for better naming science/R-cran-survival||2012-02-03|This CRAN port has been included in math/R editors/openoffice.org-3-devel|editors/openoffice-3-devel|2012-02-06|Project was taken over and renamed www/zope-cmf||2012-02-07|Has expired: Doesn't work with modern Zope versions chinese/fcitx-keyboard|textproc/fcitx-keyboard|2012-02-07|Moved to more appropriate category textproc/hs-attoparsec-text||2012-02-13|Removed: The package is deprecated devel/hs-hmake||2012-02-13|Removed: Broken, unmaintained upstream net/yate-devel||2012-02-17|Removed, please use net/yate databases/p5-postgresql-plperl|databases/postgresql84-plperl|2012-02-19|Split into versioned ports devel/p5-Version-Requirements||2012-03-01|Removed: deprecated, use CPAN::Meta::Requirements (devel/p5-CPAN-Meta >= 2.113640) instead net/ipw-firmware||2012-03-02|Removed: is already included in base system net/ipw-firmware-kmod||2012-03-02|Removed: is already included in base system net/iwi-firmware||2012-03-02|Removed: is already included in base system net/iwi-firmware-kmod||2012-03-02|Removed: is already included in base system devel/dklibs||2012-03-03|Has expired: not needed for graphics/bmeps anymore, no other users security/blocksshd||2012-03-03|Removed: security/sshguard is more active and a better tool net/p5-Net-Subnets||2012-03-03|Has expired: Disappeared from CPAN www/mediawiki116||2012-03-04|Has expired: Unsupported upstream databases/postgresql-docs|databases/postgresql84-docs|2012-03-04|Split into versioned ports databases/postgresql-pltcl|databases/postgresql84-pltcl|2012-03-05|Split into versioned ports x11-wm/scrotwm|x11-wm/spectrwm|2012-03-05|Project renamed databases/p5-Mysql||2012-03-07|No release in 11 years, doesn't work with mysql 4.0+, unmaintained audio/easytag-devel||2012-03-12|Outdated development version korean/unfonts-ttf||2012-03-16|Was divided into korean/unfonts-core and korean/unfonts-extra mail/py-email||2012-03-17|Has expired: Included into all supported python versions databases/py25-bsddb||2012-03-18|Has expired: This was only needed for mail/py-spambayes. Now it's not www/p5-Apache-AddHostPath||2012-03-20|Has expired: Only works with mod_perl 1 which is removed www/p5-Apache-Archive||2012-03-20|Has expired: Requires mod_perl 1 which is gone editors/openoffice.org-3-RC||2012-03-20|Removed graphics/vrml2pov||2012-03-21|Has expired: unfetchable (no public distfiles) net-p2p/fidelio||2012-03-21|Has expired: Hotline services does not exists anymore japanese/postgresql-tcltk||2012-03-21|Has expired: Broken for months with no one caring, superseded by http://pgtclng.sourceforge.net/ databases/postgresql-tcltk|databases/pgtcl|2012-03-21|Has expired: Broken for months with no one caring, superseded by http://pgtclng.sourceforge.net/ devel/p5-Make-Cache||2012-03-25|Has expired: Removed from CPAN, does not work, unmaintained databases/gbib||2012-03-26|Has expired sysutils/syscp|sysutils/froxlor|2012-03-26|Has expired: Long ditched, possibly dangerous and replaced with sysutils/froxlor audio/py-libtunepimp||2012-04-07|Has expired: MusicBrainz RDF webservice no longer functions audio/py-musicbrainz||2012-04-07|Has expired: MusicBrainz RDF webservice no longer functions audio/p5-MusicBrainz-Queries||2012-04-09|Has expired: MusicBrainz RDF webservice no longer functions audio/ruby-musicbrainz||2012-04-09|Has expired: MusicBrainz RDF webservice no longer functions converters/ruby-lv||2012-04-09|Has expired: upstream no longer has this devel/p5-Getopt-Popt||2012-04-09|Has expired: gone from CPAN net/p5-Net-Rendezvous||2012-04-09|Has expired: superseded by dns/p5-Net-Bonjour audio/gstreamer-plugins-musicbrainz||2012-04-09|Has expired: MusicBrainz RDF webservice no longer functions x11/wrapper||2012-04-10|Has expired: not needed anymore www/resin2||2012-04-10|Has expired: unsupported upstream, consider www/resin3 ftp/ftp-proxy||2012-04-13|Has expired: is a part of the base system in all supported FreeBSD versions databases/postgresql82-server||2012-04-15|Has expired: EOL and multiple vulnerabilities databases/postgresql82-client||2012-04-15|Has expired: EOL and multiple vulnerabilities databases/postgresql82-contrib||2012-04-15|Has expired: EOL and multiple vulnerabilities www/pivot-weblog||2012-04-15|Has expired: unsupported upstream, consider www/pivotx java/jbootstrap||2012-04-16|Has expired: bootstrap for an ancient version of Java lang/python-doc-postscript-a4||2012-04-17|This port was broken for a long time, deprecated upstream lang/python-doc-postscript-letter||2012-04-17|This port was broken for a long time, deprecated upstream mail/dbmail20||2012-04-18|Has expired: No longer supported upstream. No ports depend on this mail/dbmail21||2012-04-18|Has expired: No longer supported upstream. No ports depend on this mail/dbmail23||2012-04-18|Has expired: No longer supported upstream. No ports depend on this math/octave-forge-times||2012-04-18|Deprecated upstream www/fpc-httpd13||2012-04-19|Obsolete freepascal unit. Use www/fpc-httpd22 instead of it www/fpc-httpd20||2012-04-19|Obsolete freepascal unit. Use www/fpc-httpd22 instead of it net/socks5||2012-04-21|Removed games/netpanzer-data||2012-04-25|No longer needed www/typo344||2012-04-30|Has expired: Support will end in the near future, see http://typo3.org/download/packages/ for details databases/py-MySQLdb-devel|databases/py-MySQLdb|2012-05-01|Port is outdated, use databases/py-MySQLdb instead misc/fortune-mod-the-godfather||2012-05-07|Has expired: No longer supported editors/openoffice.org-3|editors/openoffice-3|2012-05-09|Project renamed devel/py-boto-devel|devel/py-boto|2012-05-09|Upstream does not provide development snapshots anymore, use devel/py-boto instead graphics/R-cran-labeling||2012-05-09|Removed multimedia/mythtv-themes||2012-05-10|Included in multimedia/mythtv since 0.25 multimedia/mytplugin-mythvideo||2012-05-10|Included in multimedia/mythtv since 0.25 archivers/php4-bz2||2012-05-11|Has expired: php4 is EOLed archivers/php4-zlib||2012-05-11|Has expired: php4 is EOLed converters/php4-iconv||2012-05-11|Has expired: php4 is EOLed converters/php4-mbstring||2012-05-11|Has expired: php4 is EOLed converters/php4-recode||2012-05-11|Has expired: php4 is EOLed databases/php4-dba||2012-05-11|Has expired: php4 is EOLed databases/php4-dbase||2012-05-11|Has expired: php4 is EOLed databases/php4-dbx||2012-05-11|Has expired: php4 is EOLed databases/php4-filepro||2012-05-11|Has expired: php4 is EOLed databases/php4-interbase||2012-05-11|Has expired: php4 is EOLed databases/php4-mssql||2012-05-11|Has expired: php4 is EOLed databases/php4-mysql||2012-05-11|Has expired: php4 is EOLed databases/php4-odbc||2012-05-11|Has expired: php4 is EOLed databases/php4-oracle||2012-05-11|Has expired: php4 is EOLed databases/php4-pgsql||2012-05-11|Has expired: php4 is EOLed databases/php4-rrdtool||2012-05-11|Removed databases/php4-sybase_ct||2012-05-11|Has expired: php4 is EOLed devel/php4-dio||2012-05-11|Has expired: php4 is EOLed devel/php4-gettext||2012-05-11|Has expired: php4 is EOLed devel/php4-mcve||2012-05-11|Has expired: php4 is EOLed devel/php4-ncurses||2012-05-11|Has expired: php4 is EOLed devel/php4-pcntl||2012-05-11|Has expired: php4 is EOLed devel/php4-pcre||2012-05-11|Has expired: php4 is EOLed devel/php4-readline||2012-05-11|Has expired: php4 is EOLed devel/php4-shmop||2012-05-11|Has expired: php4 is EOLed devel/php4-sysvmsg||2012-05-11|Has expired: php4 is EOLed devel/php4-sysvsem||2012-05-11|Has expired: php4 is EOLed devel/php4-sysvshm||2012-05-11|Has expired: php4 is EOLed devel/php4-tokenizer||2012-05-11|Has expired: php4 is EOLed finance/php4-pfpro||2012-05-11|Has expired: php4 is EOLed ftp/php4-curl||2012-05-11|Has expired: php4 is EOLed ftp/php4-ftp||2012-05-11|Has expired: php4 is EOLed graphics/php4-chartdirector||2012-05-11|Has expired: php4 is EOLed graphics/php4-exif||2012-05-11|Has expired: php4 is EOLed graphics/php4-gd||2012-05-11|Has expired: php4 is EOLed lang/php4||2012-05-11|Removed lang/php4-extensions||2012-05-11|Has expired: php4 is EOLed lang/php4-overload||2012-05-11|Has expired: php4 is EOLed mail/php4-imap||2012-05-11|Has expired: php4 is EOLed math/php4-bcmath||2012-05-11|Has expired: php4 is EOLed math/php4-gmp||2012-05-11|Has expired: php4 is EOLed misc/php4-calendar||2012-05-11|Has expired: php4 is EOLed misc/php4-mcal||2012-05-11|Has expired: php4 is EOLed net/php4-ldap||2012-05-11|Has expired: php4 is EOLed net/php4-sockets||2012-05-11|Has expired: php4 is EOLed net/php4-xmlrpc||2012-05-11|Has expired: php4 is EOLed net/php4-yp||2012-05-11|Has expired: php4 is EOLed net-mgmt/php4-snmp||2012-05-11|Has expired: php4 is EOLed security/php4-crack||2012-05-11|Has expired: php4 is EOLed security/php4-mcrypt||2012-05-11|Has expired: php4 is EOLed security/php4-mhash||2012-05-11|Has expired: php4 is EOLed security/php4-openssl||2012-05-11|Has expired: php4 is EOLed sysutils/php4-posix||2012-05-11|Has expired: php4 is EOLed textproc/php4-ctype||2012-05-11|Has expired: php4 is EOLed textproc/php4-domxml||2012-05-11|Has expired: php4 is EOLed textproc/php4-pspell||2012-05-11|Has expired: php4 is EOLed textproc/php4-wddx||2012-05-11|Has expired: php4 is EOLed textproc/php4-xml||2012-05-11|Has expired: php4 is EOLed textproc/php4-xslt||2012-05-11|Has expired: php4 is EOLed www/php4-session||2012-05-11|Has expired: php4 is EOLed archivers/pecl-zip||2012-05-11|Has expired: php4 is EOLed databases/pecl-sqlite||2012-05-11|Has expired: php4 is EOLed devel/pear-XML_XPath||2012-05-11|Has expired: php4 is EOLed devel/pecl-json||2012-05-11|Has expired: php4 is EOLed www/pecl-tidy||2012-05-11|Has expired: php4 is EOLed www/php-dyn||2012-05-11|Has expired: php4 is EOLed security/pecl-hash||2012-05-11|Has expired: php4 is EOLed net/phpldapadmin098||2012-05-11|Has expired: php4 is EOLed graphics/jpgraph||2012-05-11|Removed games/netrek-COW3-bin|games/netrek-client-cow|2012-05-11|COW3-bin obsolete in favor of client-cow www/firefox-sync|www/firefox-esr|2012-05-12|Integrated in newer version of Firefox www/firefox36|www/firefox-esr|2012-05-12|Upstream support dropped www/firefox36-i18n|www/firefox-esr-i18n|2012-05-12|Upstream support dropped mail/enigmail-thunderbird3|mail/enigmail-thunderbird-esr|2012-05-12|Depends on obsolete Thunderbird 3.1 mail/thunderbird3|mail/thunderbird-esr|2012-05-12|Upstream support dropped mail/thunderbird3-i18n|mail/thunderbird-esr-i18n|2012-05-12|Upstream support dropped databases/php5-sqlite||2012-05-16|Removed from core php www/py-django-css|www/py-django_compressor|2012-05-16|Upstream development stopped. Use www/py-django_compressor instead net-p2p/py-bittorrent-core||2012-05-16|Broken for more than 6 months, there are no upstream distfiles anymore net-p2p/py-bittorrent||2012-05-16|Broken for more than 6 months, there are no upstream distfiles anymore astro/boinc-einsteinathome||2012-05-16|Not usable with current project x11/avant-window-navigator-xfce4||2012-05-18|Has expired: Broken for more than 6 months deskutils/xfce4-volstatus-icon||2012-05-18|Has expired: Broken for more than 6 months multimedia/xfmedia-remote-plugin||2012-05-18|Has expired: Broken for more than 6 months sysutils/thunar-volman-plugin||2012-05-18|Has expired: Broken for more than 6 months databases/sqlite34||2012-05-18|Has expired: No longer supported, please use databases/sqlite3 instead graphics/long-exposure-tools||2012-05-18|Has expired: broken for more than 6 months, unmaintained upstream misc/kde3-i18n-hsb||2012-05-18|Has expired: Broken for more than 6 months misc/kde3-i18n-mt||2012-05-18|Has expired: Broken for more than 6 months misc/kde3-i18n-nso||2012-05-18|Has expired: Broken for more than 6 months net-im/pino||2012-05-18|Has expired: broken for more than 6 months, unmaintained upstream print/perlftlib||2012-05-18|Has expired: No more upstream, no longer used in the ports tree editors/libreoffice-legacy||2012-05-18|Has expired: not supported upstream, maintaining two versions of LibreOffice is really painful devel/p5-POE-Exceptions||2012-05-18|Has expired: included in devel/p5-POE and not needed according to configure message net/p5-Net-Services||2012-05-18|Has expired: Removed from CPAN net/perldap||2012-05-18|Has expired: Broken for more than 6 months security/p5-Crypt-Cryptix||2012-05-18|Has expired: Gone from CPAN, project site says project is dead www/p5-HTML-Sanitizer||2012-05-18|Has expired: no longer in CPAN www/p5-IMDB-Movie||2012-05-18|Has expired: Removed from CPAN net/ng_car||2012-05-19|In base for all supported versions of FreeBSD palm/coldsync||2012-05-19|Broken for more than 6 months, does not compile graphics/linux-ac3d||2012-05-19|Has expired: Broken for more than 6 months archivers/pecl-bz2|archivers/php5-bz2|2012-05-20|bz2 is included in core php misc/freshmeat-submit|misc/freecode-submit|2012-05-20|Project renamed devel/kdebindings4-kross-interpreters||2012-05-25|kdebindings4 ports have been refactored devel/kdebindings4-python||2012-05-25|kdebindings4 ports have been refactored devel/kdebindings4-ruby||2012-05-25|kdebindings4 ports have been refactored devel/kdebindings4-smoke||2012-05-25|kdebindings4 ports have been refactored deskutils/plasma-applet-icontasks||2012-05-25|Integrated to KDE SC 4.8 audio/audacity-devel|audio/audacity|2012-05-30|Removed in favor of stable editors/koffice-i18n||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-af||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-bg||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-br||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-bs||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-ca||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-cs||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-cy||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-da||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-el||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-en_GB||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-eo||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-es||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-et||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-eu||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-fa||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-fi||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-ga||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-gl||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-hi||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-hsb||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-is||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-it||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-km||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-lo||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-lt||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-lv||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-mk||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-ms||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-mt||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-nb||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-nl||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-nn||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-ro||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-se||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-sk||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-sl||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-sr||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-sr_Latn||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-sv||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-ta||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-tg||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-th||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-tr||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-uz||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-ven||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-xh||2012-05-31|Depends on editors/koffice-kde3, which is deleted editors/koffice-i18n-zu||2012-05-31|Depends on editors/koffice-kde3, which is deleted chinese/koffice-kde4-l10n-zh_CN|chinese/calligra-l10n-zh_CN|2012-05-31|Unmaintained upstream, use Calligra chinese/koffice-kde4-l10n-zh_TW|chinese/calligra-l10n-zh_TW|2012-05-31|Unmaintained upstream, use Calligra editors/koffice-kde4-l10n-ca_valencia|editors/calligra-l10n-ca_valencia|2012-05-31|Unmaintained upstream, use Calligra editors/koffice-kde4-l10n-ca|editors/calligra-l10n-ca|2012-05-31|Unmaintained upstream, use Calligra editors/koffice-kde4-l10n-da|editors/calligra-l10n-da|2012-05-31|Unmaintained upstream, use Calligra editors/koffice-kde4-l10n-el|editors/calligra-l10n-el|2012-05-31|Unmaintained upstream, use Calligra editors/koffice-kde4-l10n-en_GB|editors/calligra-l10n-en_GB|2012-05-31|Unmaintained upstream, use Calligra editors/koffice-kde4-l10n-es|editors/calligra-l10n-es|2012-05-31|Unmaintained upstream, use Calligra editors/koffice-kde4-l10n-et|editors/calligra-l10n-et|2012-05-31|Unmaintained upstream, use Calligra editors/koffice-kde4-l10n-gl||2012-05-31|Unmaintained upstream editors/koffice-kde4-l10n-it|editors/calligra-l10n-it|2012-05-31|Unmaintained upstream, use Calligra editors/koffice-kde4-l10n-kk|editors/calligra-l10n-kk|2012-05-31|Unmaintained upstream, use Calligra editors/koffice-kde4-l10n-nb|editors/calligra-l10n-nb|2012-05-31|Unmaintained upstream, use Calligra editors/koffice-kde4-l10n-nds|editors/calligra-l10n-nds|2012-05-31|Unmaintained upstream, use Calligra editors/koffice-kde4-l10n-nl|editors/calligra-l10n-nl|2012-05-31|Unmaintained upstream, use Calligra editors/koffice-kde4-l10n-sv|editors/calligra-l10n-sv|2012-05-31|Unmaintained upstream, use Calligra editors/koffice-kde4-l10n-tr||2012-05-31|Unmaintained upstream editors/koffice-kde4-l10n-wa||2012-05-31|Unmaintained upstream editors/koffice-kde4-l10n|editors/calligra-l10n|2012-05-31|Unmaintained upstream, use Calligra editors/koffice-kde4|editors/calligra|2012-05-31|Unmaintained upstream, use Calligra french/koffice-kde4-l10n|french/calligra-l10n|2012-05-31|Unmaintained upstream, use Calligra german/koffice-kde4-l10n|german/calligra-l10n|2012-05-31|Unmaintained upstream, use Calligra hungarian/koffice-kde4-l10n|hungarian/calligra-l10n|2012-05-31|Unmaintained upstream, use Calligra japanese/koffice-kde4-l10n||2012-05-31|Unmaintained upstream polish/koffice-kde4-l10n|polish/calligra-l10n|2012-05-31|Unmaintained upstream, use Calligra portuguese/koffice-kde4-l10n-pt_BR|portuguese/calligra-l10n-pt_BR|2012-05-31|Unmaintained upstream, use Calligra portuguese/koffice-kde4-l10n|portuguese/calligra-l10n|2012-05-31|Unmaintained upstream, use Calligra russian/koffice-kde4-l10n|russian/calligra-l10n|2012-05-31|Unmaintained upstream, use Calligra ukrainian/koffice-kde4-l10n|ukrainian/calligra-l10n|2012-05-31|Unmaintained upstream, use Calligra dns/drill||2012-05-31|drill tool is a part of ldns package now devel/hs-binary||2012-06-03|Removed: this package became part of lang/ghc devel/hs-convertible-text||2012-06-03|Removed: this package is obsolete devel/hs-control-monad-attempt||2012-06-03|Removed: this package is obsolete devel/hs-data-object||2012-06-03|Removed: this package is obsolete devel/hs-data-object-yaml||2012-06-03|Removed: this package is obsolete devel/hs-deepseq||2012-06-03|Removed: this package became part of lang/ghc devel/hs-ghc-paths-docs||2012-06-03|Removed: not needed anymore devel/hs-haddock-docs||2012-06-03|Removed: not needed anymore devel/hs-mtl-docs||2012-06-03|Removed: not needed anymore devel/hs-pool||2012-06-03|Removed: this package is obsolete devel/hs-transformers-docs||2012-06-03|Removed: not needed anymore print/hs-hscolour-docs||2012-06-03|Removed: not needed anymore textproc/hs-xhtml-docs||2012-06-03|Removed: not needed anymore textproc/hs-xml-enumerator||2012-06-03|Removed: this package is obsolete www/hs-happstack-data||2012-06-03|Removed: this package is obsolete www/hs-happstack-ixset||2012-06-03|Removed: this package is obsolete www/hs-happstack-state||2012-06-03|Removed: this package is obsolete www/hs-happstack-util||2012-06-03|Removed: this package is obsolete www/hs-http-enumerator||2012-06-03|Removed: this package is obsolete graphics/libungif|graphics/giflib|2012-06-05|Replaced by giflib mail/kavmilter||2012-06-06|Removed: security package unmaintained upstream sysutils/linux-megacli|sysutils/megacli|2012-06-06|Removed: native version available ftp/wu-ftpd+ipv6||2012-06-07|Removed: Upstream disappeared and distfile is no longer available sysutils/pwgen2|sysutils/pwgen|2012-06-07|pwgen2 is a continuation of pwgen that fixes several serious bugs x11-toolkits/xforms-i18n||2012-06-08|Has expired: Broken for more than 6 months security/ifd-devkit||2012-06-08|Conflicts with dependency, not useful www/kazehakase||2012-06-10|Has expired: Broken for more than 6 months x11/trayer-srg|x11/trayer|2012-06-11|Merged into x11/trayer games/flightgear-atlas||2012-06-12|Unmaintained upstream deskutils/sciplore-mindmapping||2012-06-12|Has expired: Discontinued, use deskutils/docear instead devel/libtool-fixed||2012-06-12|Has expired: libtool has been fixed, no more need of this version devel/p5-Devel-ObjectTracker||2012-06-12|Has expired: removed from CPAN devel/rubygem-vmc||2012-06-12|Has expired: Broken for more than 6 months games/antrix||2012-06-12|Has expired: no more public distfiles, abandoned upstream games/sfbol||2012-06-12|Has expired: Broken for more than 6 months java/eclipseme||2012-06-12|Has expired: depends on java/sun-wtk mail/lmtpd||2012-06-12|Has expired: Broken for more than 6 months print/cups-magicolor||2012-06-12|Has expired: Broken for more than 6 months security/pantera||2012-06-12|Has expired: Broken for more than 6 months graphics/djvulibre-nox11|graphics/djvulibre|2012-06-13|Merged back into graphics/djvulibre games/wesnoth-devel||2012-06-13|Has expired: Broken for more than 6 months www/trac-ticketdelete||2012-06-14|Has expired: Functionality of this plugin has been incorporated into Trac 0.12 x11-themes/gtk-qt-engine||2012-06-16|Has expired: Broken for more than 6 months devel/bazaar|devel/baz|2012-06-17|Project renamed devel/bazaar-ng|devel/bzr|2012-06-17|Project renamed ftp/IglooFTP||2012-06-18|Has expired: No longer supported audio/libtunepimp||2012-06-20|MusicBrainz RDF webservice no longer functions audio/libtunepimp-old||2012-06-20|MusicBrainz RDF webservice no longer functions sysutils/xfce4-utils||2012-06-23|No longer relevant, see UPDATING devel/py-sendfile|net/py-pysendfile|2012-06-24|Domain lapsed, forked www/joomla||2012-06-25|Unmaintained upstream, please use www/joomla25 instead graphics/p5-chart|graphics/p5-Chart|2012-06-30|Move to a better place via repocopy textproc/libupskirt|textproc/libsoldout|2012-07-01|Move to respect upstream new name net-p2p/libtorrent-rasterbar-14||2012-07-01|Discontinued upstream, move to libtorrent-rasterbar-16 net-p2p/hrktorrent||2012-07-01|Relies on net-p2p/libtorrent-rasterbar-14, which has been discontinued net-p2p/sharktorrent||2012-07-01|Relies on net-p2p/libtorrent-rasterbar-14, which has been discontinued databases/postgresql-libpqxx30|databases/postgresql-libpqxx3|2012-07-03|Port renamed to be updated to 3.1 mail/mew2|mail/mew|2012-07-06|Development of this versions ceased, superseded by mail/mew mail/mew3|mail/mew|2012-07-06|Development of this versions ceased, superseded by mail/mew sysutils/devcpu||2012-07-06|Already included in base system mail/squirreloutlook||2012-07-06|Based on a vulnerable version of squirrelmail, use mail/squirrelmail for similar functionality x11-wm/e17-module-itask-ng|x11-wm/e17-module-engage|2012-07-06|Project has been renamed sysutils/rubygem-puppet-module||2012-07-07|Integrated in to sysutils/puppet since 2.7.14 mail/sympa5|mail/sympa|2012-07-07|Has expired: Unsupported upstream, multiple vulnerabilities have been discovered in Sympa archive management that allow to skip the scenario-based authorization mechanisms (http://www.sympa.org/security_advisories) science/ics||2012-07-07|ICS is no more a part of Code_Saturne mail/postfix25||2012-07-07|Has expired: no further upstream development; please consider upgrading misc/alevt||2012-07-16|Has expired: No more upstream multimedia/moonlight||2012-07-16|Has expired: Broken for more than 6 months lang/python24||2012-07-16|End Of Life reached lang/python25||2012-07-16|End Of Life reached www/zope||2012-07-16|End Of Life reached www/zope211||2012-07-16|End Of Life reached archivers/zlib||2012-07-18|Removed in favor of base system zlib devel/app|devel/papp|2012-07-18|Project renamed upstream databases/redis-scripting|databases/redis-devel|2012-07-19|Removed, please use databases/redis-devel instead devel/acpicatools||2012-07-22|Has expired: obsolete and already in the base system for a long time mail/mutt-devel|mail/mutt|2012-07-22|mail/mutt-devel is ready for prime time mail/mutt-devel-lite|mail/mutt-lite|2012-07-22|mail/mutt-devel is ready for prime time deskutils/phpgroupware|www/phpgroupware|2012-07-23|Moved to proper category textproc/fcitx-keyboard||2012-07-25|Removed, merged into chinese/fcitx devel/pkg-config|devel/pkgconf|2012-07-26|pkg-config has been replaced by pkgconf print/pdfmerge||2012-07-27|Removed audio/etoile-melodie||2012-07-28|Has expired: API no longer supported audio/etoile-volumecontrolmenulet||2012-07-28|Has expired: API no longer supported deskutils/etoile-corner||2012-07-28|Has expired: API no longer supported deskutils/etoile-dictionaryreader||2012-07-28|Has expired: API no longer supported deskutils/etoile-distributedview||2012-07-28|Has expired: API no longer supported deskutils/etoile-extendedworkspacekit||2012-07-28|Has expired: API no longer supported deskutils/etoile-hardware||2012-07-28|Has expired: API no longer supported deskutils/etoile-inspectorkit||2012-07-28|Has expired: API no longer supported deskutils/etoile-lookandbehavior||2012-07-28|Has expired: API no longer supported deskutils/etoile-menuserver||2012-07-28|Has expired: API no longer supported deskutils/etoile-panekit||2012-07-28|Has expired: API no longer supported deskutils/etoile-scriptservices||2012-07-28|Has expired: API no longer supported deskutils/etoile-servicemenulet||2012-07-28|Has expired: API no longer supported deskutils/etoile-servicesbarkit||2012-07-28|Has expired: API no longer supported deskutils/etoile-systemconfig||2012-07-28|Has expired: API no longer supported deskutils/etoile-trackerkit||2012-07-28|Has expired: API no longer supported deskutils/etoile-ui||2012-07-28|Has expired: API no longer supported devel/etoile-collectionkit||2012-07-28|Has expired: API no longer supported devel/etoile-coreobject||2012-07-28|Has expired: API no longer supported devel/etoile-foundation||2012-07-28|Has expired: API no longer supported devel/etoile-serialize||2012-07-28|Has expired: API no longer supported devel/etoile-unitkit||2012-07-28|Has expired: API no longer supported devel/llvm-etoile||2012-07-28|Has expired: API no longer supported editors/etoile-typewriter||2012-07-28|Has expired: API no longer supported graphics/popplerkit||2012-07-28|Has expired: API no longer supported graphics/vindaloo||2012-07-28|Has expired: API no longer supported lang/etoile-compiler||2012-07-28|Has expired: API no longer supported lang/etoile-io||2012-07-28|Has expired: API no longer supported lang/etoile-languagekit||2012-07-28|Has expired: API no longer supported lang/etoile-lkplugins||2012-07-28|Has expired: API no longer supported lang/etoile-scriptkit||2012-07-28|Has expired: API no longer supported lang/etoile-smalltalkkit||2012-07-28|Has expired: API no longer supported multimedia/etoile-babbler||2012-07-28|Has expired: API no longer supported multimedia/etoile-mediakit||2012-07-28|Has expired: API no longer supported multimedia/etoile-multimediakit||2012-07-28|Has expired: API no longer supported net-im/etoile-stepchat||2012-07-28|Has expired: API no longer supported net-im/etoile-xmppkit||2012-07-28|Has expired: API no longer supported sysutils/etoile-behavior||2012-07-28|Has expired: API no longer supported sysutils/etoile-installer||2012-07-28|Has expired: API no longer supported sysutils/etoile-powermenulet||2012-07-28|Has expired: API no longer supported sysutils/etoile-system||2012-07-28|Has expired: API no longer supported textproc/etoile-lucenekit||2012-07-28|Has expired: API no longer supported textproc/etoile-ogrekit||2012-07-28|Has expired: API no longer supported textproc/etoile-opmlkit||2012-07-28|Has expired: API no longer supported www/etoile-bookmarkkit||2012-07-28|Has expired: API no longer supported www/etoile-mollusk||2012-07-28|Has expired: API no longer supported x11-fm/etoile-fontmanager||2012-07-28|Has expired: API no longer supported x11-themes/etoile-azbackground||2012-07-28|Has expired: API no longer supported x11-themes/etoile-camaelon||2012-07-28|Has expired: API no longer supported x11-themes/etoile-etoilemenus||2012-07-28|Has expired: API no longer supported x11-themes/etoile-iconkit||2012-07-28|Has expired: API no longer supported x11-themes/etoile-wildmenus||2012-07-28|Has expired: API no longer supported x11-wm/etoile-azalea||2012-07-28|Has expired: API no longer supported x11-wm/etoile-azdock||2012-07-28|Has expired: API no longer supported x11-wm/etoile-azswitch||2012-07-28|Has expired: API no longer supported x11-wm/etoile-login||2012-07-28|Has expired: API no longer supported x11/etoile||2012-07-28|Has expired: Update to a new release is required x11/etoile-idle||2012-07-28|Has expired: API no longer supported x11/etoile-iterm||2012-07-28|Has expired: API no longer supported x11/etoile-xwindowserverkit||2012-07-28|Has expired: API no longer supported lang/steptalk||2012-07-29|Has expired: API no longer supported editors/emacs.app||2012-07-29|Has expired: API no longer supported devel/ruby-gnustep||2012-07-29|Has expired: API no longer supported www/etoile-rsskit|www/rsskit|2012-08-04|Project renamed www/etoile-grr|www/grr|2012-08-04|Project renamed graphics/libglut|graphics/freeglut|2012-08-04|Replace libglut with freeglut x11-fm/FSViewer||2012-08-05|Broken, unmaintained, dead upstream games/gomoku.app|games/gomoku|2012-08-06|Project renamed devel/projectcenter.app|devel/projectcenter|2012-08-06|Project renamed audio/volumecontrol.app|audio/volumecontrol|2012-08-06|Project renamed editors/textedit.app|editors/textedit|2012-08-07|Project renamed deskutils/preferences.app|deskutils/preferences|2012-08-07|Project renamed www/trac-ctxtnavadd||2012-08-09|Functionality of this plugin merged into Trac itself - see trac.web.chrome.add_ctxtnav function net-p2p/qbittorrent-29|net-p2p/qbittorrent|2012-08-11|Moved to match port name net-p2p/qbittorrent-29-nox11|net-p2p/qbittorrent-nox11|2012-08-11|Moved to match port name sysutils/cfengine-legacy|sysutils/cfengine32|2012-08-14|Standardize port naming sysutils/cfengine3|sysutils/cfengine33|2012-08-14|Standardize port naming lang/erlang-lite|lang/erlang|2012-08-15|Redundant port removed devel/apr0|devel/apr1|2012-08-18|Has expired www/apache20|www/apache22|2012-08-18|Has expired www/django-mezzanine-filebrowser|www/py-django-mezzanine-filebrowser|2012-08-19|Rename to consistency with other Python ports www/django-mezzanine-grappelli|www/py-django-mezzanine-grappelli|2012-08-19|Rename to consistency with other Python ports misc/gpt31||2012-08-20|Has expired: was a dependency for net/globus4, which was removed 2008-12-07, unmaintained upstream since 2004 misc/gpt||2012-08-20|Has expired: was a dependency for net/globus4, which was removed 2008-12-07, unmaintained upstream since 2004 www/xxxterm|www/xombrero|2012-08-20|Project renamed www/cakephp2|www/cakephp21|2012-08-21|Moved to match port version databases/libudbc||2012-08-21|Has expired: Does not fetch and no vendor support anymore net/asterisk16||2012-08-22|Unsupported upstream, please use net/asterisk instead net/asterisk16-addons||2012-08-22|Unsupported upstream, now part of net/asterisk databases/edb||2012-08-26|Has expired: Deprecated by enlightenment.org team databases/php5-rrdtool||2012-08-26|Has expired: deprecated via upstream please use databases/pecl-rrd graphics/evas-engine-xrender||2012-08-26|Has expired: Deprecated by enlightenment.org graphics/evas-loader-edb||2012-08-26|Has expired: Deprecated by enlightenment.org www/linux-f10-flashplugin10|www/linux-f10-flashplugin11|2012-08-26|Has expired: has vulnerabilities and is EOL x11-wm/e17-module-efm_nav||2012-08-26|Has expired: Deprecated by enlightenment.org x11-wm/e17-module-efm_path||2012-08-26|Has expired: Deprecated by enlightenment.org x11-wm/e17-module-efm_pathbar||2012-08-26|Has expired: Deprecated by enlightenment.org x11-wm/e17-module-notification||2012-08-26|Has expired: Merged into x11-wm/enlightenment www/py-django12||2012-08-31|Has expired: Unsupported version www/p5-Xango||2012-08-31|Has expired: Removed from CPAN lang/spidermonkey|lang/spidermonkey17|2012-09-01|Moved to allow for addition of the 1.8 development line cad/gtkwave3|cad/gtkwave|2012-09-04|There is only one version of this now multimedia/x264-devel||2012-09-07|Has expired: x264 github development makes this port obsolete audio/holyshout||2012-09-07|Has expired: upstream has disappeared devel/R-cran-survival||2012-09-12|Part of R japanese/postgresql73-man||2012-09-13|There no according PostgreSQL version in the tree anymore japanese/postgresql74-man||2012-09-13|There no according PostgreSQL version in the tree anymore japanese/postgresql80-man||2012-09-13|There no according PostgreSQL version in the tree anymore japanese/postgresql81-man||2012-09-13|There no according PostgreSQL version in the tree anymore audio/libmusicbrainz||2012-09-18|Has expired: MusicBrainz RDF webservice no longer functions net-mgmt/better-cacti-templates|net-mgmt/percona-monitoring-plugins|2012-09-19|Project renamed print/pips3300||2012-09-22|Removed print/pips-spr200_210||2012-09-22|Removed print/pipsv600||2012-09-22|Removed print/pips-spr800||2012-09-22|Removed print/pips-sc85_86s||2012-09-22|Removed print/pips2200||2012-09-22|Removed print/pips880||2012-09-22|Removed print/pips940||2012-09-22|Removed print/pips730||2012-09-22|Removed print/pips900||2012-09-22|Removed print/pips820||2012-09-22|Removed print/pips740||2012-09-22|Removed print/pipsg700||2012-09-22|Removed print/pipsv700-cups||2012-09-22|Removed print/pipsg900||2012-09-22|Removed print/pips-sp2100_2200||2012-09-22|Removed print/pips4000||2012-09-22|Removed print/pips980||2012-09-22|Removed print/pips740-cups||2012-09-22|Removed print/pips970-cups||2012-09-22|Removed print/pipsv500||2012-09-22|Removed print/pips-scx3500_3600s||2012-09-22|Removed print/pips-sc65_66s||2012-09-22|Removed print/pips970||2012-09-22|Removed print/pips750_2000||2012-09-22|Removed print/pips780||2012-09-22|Removed print/pips-sc84_83s||2012-09-22|Removed print/pipsv700||2012-09-22|Removed print/pips800||2012-09-22|Removed print/pips-sc60s||2012-09-22|Removed print/pips3500||2012-09-22|Removed print/pips3000||2012-09-22|Removed print/pips870||2012-09-22|Removed print/pips670||2012-09-22|Removed print/pips760||2012-09-22|Removed print/pips-sc80s||2012-09-22|Removed print/pipsg800||2012-09-22|Removed print/pips870-cups||2012-09-22|Removed print/pips-spr300_310||2012-09-22|Removed print/pips930||2012-09-22|Removed print/pips770||2012-09-22|Removed www/linuxpluginwrapper||2012-09-22|Has expired: doesn't support ELF symbol versioning, yet net/fping+ipv6|net/fping|2012-09-24|IPv6 support has been merged textproc/aspell-without-dicten|textproc/aspell|2012-09-24|The dictionary is no longer installed with textproc/aspell www/jakarta-jmeter|www/jmeter|2012-09-25|Former Jakarta projects now live on their own www/smarty|www/smarty2|2012-09-26|Renamed to prepare for addition of Smarty 3.x to the tree devel/p5-Devel-Mallinfo||2012-10-08|Has expired: Does not work on FreeBSD, mallinfo() is a GNU libc function and is not available on FreeBSD multimedia/vdpau-video|multimedia/libva-vdpau-driver|2012-10-09|Project renamed mail/enigmail||2012-10-10|Enigmail is now an option in the thunderbird/seamonkey port mail/enigmail-seamonkey||2012-10-10|Enigmail is now an option in the seamonkey port mail/enigmail-thunderbird||2012-10-10|Enigmail is now an option in the thunderbird port mail/enigmail-thunderbird-esr||2012-10-10|Enigmail is now an option in the thunderbird-esr port sysutils/binup||2012-10-14|Upstream disappeared, use freebsd-update(8) instead math/guppi||2012-10-15|Not developed anymore, consider math/gnumeric instead x11-toolkits/gal||2012-10-15|Development ceased, nothing in the ports tree uses it anymore math/octave-forge-physicalconstants||2012-10-15|Incorporated upstream into math/octave-forge-miscellaneous math/octave-forge-combinatorics||2012-10-15|Incorporated upstream into math/octave-forge-miscellaneous games/8kingdoms||2012-10-16|Has expired: Broken for more than 6 months games/rigsofrods||2012-10-16|Has expired: Broken for more than 6 months sysutils/bacula2-client||2012-10-20|No longer supported upstream and may contain vulnerabilities. Use sysutils/bacula-client instead sysutils/bacula2-server||2012-10-20|No longer supported upstream and may contain vulnerabilities. Use sysutils/bacula-server instead x11-wm/wmcp||2012-10-25|Has expired: No more public distfiles x11-wm/skippy-xd||2012-10-25|Has expired: Abandonware, upstream disappeared x11-wm/skippy||2012-10-25|Has expired: Abandonware, upstream disappeared x11-wm/matchbox||2012-10-25|Has expired: Abandonware, upstream disappeared x11-wm/blwm||2012-10-25|Has expired: Abandonware, upstream disappeared x11-wm/badwm||2012-10-25|Has expired: Development ceased x11-wm/amaterus||2012-10-25|Has expired: Abandonware, upstream disappeared x11-wm/ahwm||2012-10-25|Has expired: Abandoned upstream x11-toolkits/py-SciParam||2012-10-25|Has expired: Depends on the deprecated wx 2.4 x11-toolkits/p5-GdkImlib||2012-10-25|Has expired: Abandoned upstream, not used by any ports x11-toolkits/mesgui||2012-10-25|Has expired: Abandoned upstream, no ports depend on it x11-toolkits/gtkmm12||2012-10-25|Has expired: Abandoned upstream, no more depending ports x11-toolkits/flu||2012-10-25|Has expired: No more public distfiles x11-toolkits/efltk||2012-10-25|Has expired: Abandoned upstream, no ports depend on it x11-toolkits/9libs||2012-10-25|Has expired: Abandonware, no ports depend on it, and broken on most arches x11-themes/metacity-ana-theme||2012-10-25|Has expired: No more public distfiles x11-themes/gtk-ana-theme||2012-10-25|Has expired: No more public distfiles x11-fonts/getbdf||2012-10-25|Has expired: No more public distfiles x11-fonts/arkpandora||2012-10-25|Has expired: No more public distfiles x11-clocks/wmdate||2012-10-25|Has expired: No more public distfiles x11/multi-gnome-terminal||2012-10-25|Has expired: depends on deprecated gnome1 things www/wacko||2012-10-25|Has expired: No more public distfiles sysutils/wtmp-tools||2012-10-25|Has expired: No more public distfiles sysutils/pdumpfs-rsync||2012-10-25|Has expired: No more public distfiles sysutils/pdumpfs-clean||2012-10-25|Has expired: No more public distfiles sysutils/netdump-server||2012-10-25|Has expired: No more public distfiles sysutils/nctop||2012-10-25|Has expired: No more public distfiles sysutils/memgrep||2012-10-25|Has expired: No more public distfiles sysutils/logserial||2012-10-25|Has expired: No more public distfiles sysutils/dupfind||2012-10-25|Has expired: No more public distfiles sysutils/dump9660||2012-10-25|Has expired: No more public distfiles sysutils/desktopbsd-tools||2012-10-25|Has expired: No more public distfiles sysutils/agef||2012-10-25|Has expired: No more public distfiles security/sscep||2012-10-25|Has expired: No more public distfiles security/py-rijndael||2012-10-25|Has expired: No more public distfiles security/pam_af||2012-10-25|Has expired: No more public distfiles security/its4||2012-10-25|Has expired: No more public distfiles russian/xcyrBGR||2012-10-25|Has expired: No more public distfiles russian/wmcyrx||2012-10-25|Has expired: No more public distfiles print/advi||2012-10-25|Has expired: No more public distfiles palm/plucker||2012-10-25|Has expired: No more public distfiles net-p2p/py-bittornado-core||2012-10-25|Has expired: Depends on the deprecated wx 2.4 net-p2p/py-bittornado||2012-10-25|Has expired: Depends on the deprecated wx 2.4 net-mgmt/nagios-radauth-plugin||2012-10-25|Has expired: No more public distfiles net-mgmt/nagios-check_nick||2012-10-25|Has expired: No more public distfiles net-im/grouch||2012-10-25|Has expired: No more public distfiles net-im/firetalk||2012-10-25|Has expired: No more public distfiles net/linneighborhood||2012-10-25|Has expired: No more public distfiles net/libconnect||2012-10-25|Has expired: No more public distfiles multimedia/vcdtools||2012-10-25|Has expired: No more public distfiles multimedia/mpeg||2012-10-25|Has expired: No more public distfiles multimedia/gnustep-mplayer||2012-10-25|Has expired: No more public distfiles misc/voltcraft304||2012-10-25|Has expired: No more public distfiles misc/thailocale||2012-10-25|Has expired: No more public distfiles misc/flyway||2012-10-25|Has expired: No more public distfiles mail/zabit||2012-10-25|Has expired: No more public distfiles mail/wbl||2012-10-25|Has expired: No more public distfiles mail/smtpd||2012-10-25|Has expired: No more public distfiles lang/cu-prolog||2012-10-25|Has expired: No more public distfiles japanese/stardict-dict-ja||2012-10-25|Has expired: No more public distfiles japanese/otojiro-fpw||2012-10-25|Has expired: No more public distfiles japanese/hex||2012-10-25|Has expired: No more public distfiles japanese/gxditview||2012-10-25|Has expired: No more public distfiles graphics/view3ds||2012-10-25|Has expired: No more public distfiles graphics/photoclip||2012-10-25|Has expired: No more public distfiles graphics/multivideo||2012-10-25|Has expired: Abandonware, no more upstream, depends on the deprecated wxGTK 2.4 graphics/jpegpixi||2012-10-25|Has expired: No more public distfiles graphics/gimp-manual-pdf||2012-10-25|Has expired: No more public distfiles games/yace||2012-10-25|Has expired: No more public distfiles games/xripple||2012-10-25|Has expired: No more public distfiles games/wolf3d||2012-10-25|Has expired: No more public distfiles games/pets||2012-10-25|Has expired: No more public distfiles games/linux-enemyterritory-fortress||2012-10-25|Has expired: No more public distfiles games/linux-enemyterritory-etpub||2012-10-25|Has expired: No more public distfiles (for the .pk3) games/freesci||2012-10-25|Has expired: No more public distfiles dns/gresolver||2012-10-25|Has expired: No more public distfiles devel/vb2c||2012-10-25|Has expired: No more public distfiles devel/libsigc++||2012-10-25|Has expired: Abandoned upstream, no more depending ports devel/klassmodeler||2012-10-25|Has expired: Abandonware, depends on the deprecated wxGTK 2.4 devel/ecos-tools||2012-10-25|Has expired: Depends on an obsolete version of wx, broken with gcc4.2 for long devel/datadesigner||2012-10-25|Has expired: Abandonware, depends on the deprecated wxGTK 2.4 chinese/wangttf||2012-10-25|Has expired: No more public distfiles chinese/stardict-dict-zh_TW||2012-10-25|Has expired: No more public distfiles chinese/stardict-dict-zh_CN||2012-10-25|Has expired: No more public distfiles chinese/mingunittf||2012-10-25|Has expired: No more public distfiles chinese/dfsongsd||2012-10-25|Has expired: No more public distfiles biology/dna-qc||2012-10-25|Has expired: No more public distfiles x11-toolkits/wxgtk24||2012-10-26|Not supported upstream anymore, consider using more recent version x11-toolkits/wxgtk24-contrib||2012-10-26|Not supported upstream anymore, consider using more recent version x11-toolkits/wxgtk24-docs||2012-10-26|Not supported upstream anymore, consider using more recent version x11-toolkits/py-wxPython24||2012-10-26|Not supported upstream anymore, consider using more recent version audio/gogo||2012-10-26|No more public distfiles deskutils/superkaramba-lwp||2012-10-26|Has expired: No more public_distfiles x11-toolkits/paragui||2012-10-26|Has expired: No more upstream, no ports depending on it deskutils/gnuwash||2012-10-26|Has expired: No more public distfiles devel/p5-Class-MOP||2012-10-27|Has expired: distribution has been merged with devel/p5-Moose x11-toolkits/ocaml-lablgtk||2012-10-27|Has expired: Abandoned upstream, consider using x11-toolkit/ocaml-lablgtk2 audio/xmms-arts_output||2012-10-28|Has expired: Outdated and distfile no longer available databases/pear-MDB2_Driver_ibase||2012-10-28|Has expired: Broken for more than 6 months textproc/xerces-c||2012-11-05|Has expired: No more supported upstream, consider using xerces-c2 or xerces-c3 x11-wm/wampager||2012-11-05|Has expired: Development ceased x11-wm/waimea||2012-11-05|Has expired: Development ceased x11-wm/waimea-devel||2012-11-05|Has expired: Development ceased devel/py-liblarch_gtk||2012-11-09|Merged into devel/py-liblarch x11-fonts/tolkien-ttf||2012-11-11|Has expired: Does not fetch: there are no more public distfiles www/mod_jk-apache2|www/mod_jk|2012-11-14|Apache 1.3 is no longer in the tree net-im/qutim-plugin-icq||2012-11-19|Has expired: It is not needed for new QutIM net-im/qutim-plugin-jabber||2012-11-19|Has expired: It is not needed for new QutIM www/trac-customroadmap||2012-11-19|Has expired: Functionality of this plugin is available in the Trac core as of 0.11 net-mgmt/py-snmp2||2012-11-19|Has expired: Dead upstream, use net-mgmt/py-snmp4 instead net-im/ccmsn||2012-11-19|Has expired: The project no longer exists irc/py-irclib|irc/py-irc|2012-11-22|Rename according to upstream name change editors/glimmer||2012-11-28|Has expired: Depends on the expired gtkglarea through py-gtk palm/txt2pdbdoc||2012-11-28|Has expired: No more public distfiles sysutils/xloadface||2012-11-28|Has expired: No more public distfiles shells/gscommander||2012-11-28|Has expired: Abandonware security/saferpay||2012-11-28|Has expired: No more public distfiles x11-wm/qvwm||2012-11-28|Has expired: No more public distfiles astro/position||2012-11-28|Has expired: No more public distfiles astro/tangogps||2012-11-28|Has expired: No more public distfiles audio/volumecontrol||2012-11-28|Has expired: No more public distfiles audio/wsoundprefs||2012-11-28|Has expired: Depends on the deprecated audio/wsoundserver and expired x11-toolkits/libdockapp audio/wsoundserver||2012-11-28|Has expired: Depends on deprecated libdockapp benchmarks/gsbench||2012-11-28|Has expired: No more public distfiles benchmarks/xengine||2012-11-28|Has expired: No more public distfiles biology/belvu||2012-11-28|Has expired: No more public distfiles multimedia/kaffeine-mozilla||2012-11-28|Has expired: No more public distfiles www/gnustep-ticker||2012-11-28|Has expired: Abandonware net/tryst-examples||2012-11-28|Has expired: Abandonware net/tryst||2012-11-28|Has expired: Abandonware graphics/morpheus||2012-11-28|Has expired: Depends on the expired gtkglarea devel/jakarta-commons-chain||2012-11-28|Has expired: Depends on the expired devel/portlet-api math/p5-Math-LinearCombination||2012-11-28|Has expired: Depends on the expired p5-Class-Field x11/padkey||2012-11-28|Has expired: No more public distfiles japanese/gicq||2012-11-28|Has expired: No more public distfiles and development ceased www/momspider||2012-11-28|Has expired: No more public distfiles japanese/perl5||2012-11-28|Has expired: Recent perl supports correctly japanese, consider using them sysutils/fuser||2012-11-28|Has expired: No more public distfiles textproc/ascii2pdf||2012-11-28|Has expired: No more public distfiles textproc/lemmatizer||2012-11-28|Has expired: No more public distfiles net/relay||2012-11-28|Has expired: No more public distfiles x11-clocks/bmp-alarm||2012-11-28|Has expired: No more public distfiles net-mgmt/nagios-check_ice||2012-11-28|Has expired: No more public distfiles japanese/libicq||2012-11-28|Has expired: No more public distfiles and development ceased graphics/tonicpoint-viewer||2012-11-28|Has expired: No more public distfiles devel/safestr||2012-11-28|Has expired: No more public distfiles java/jmp||2012-11-28|Has expired: Java 1.5 is EOLed irc/tr-ircd||2012-11-28|Has expired: No more public distfiles lang/imp-interpreter||2012-11-28|Has expired: No more public distfiles games/xquarto||2012-11-28|Has expired: No more public distfiles games/six||2012-11-28|Has expired: No more public distfiles finance/gfp||2012-11-28|Has expired: No more public distfiles games/44bsd-hunt||2012-11-28|Has expired: No more public distfiles graphics/ale||2012-11-28|Has expired: No more public distfiles german/digibux||2012-11-28|Has expired: No more public distfiles java/eclipse-clay-core||2012-11-28|Has expired: No more public distfiles games/xbloody||2012-11-28|Has expired: No more public distfiles dns/sqldjbdns||2012-11-28|Has expired: No more public distfiles ftp/mget||2012-11-28|Has expired: No more public distfiles graphics/yap||2012-11-28|Has expired: No more public distfiles games/demonquake||2012-11-28|Has expired: No more public distfiles databases/php-sqlrelay||2012-11-28|Has expired: No more public distfiles devel/fastdep||2012-11-28|Has expired: No more public distfiles graphics/svgviewer||2012-11-28|Has expired: No more public distfiles comms/garmin-utils||2012-11-28|Has expired: No more public distfiles comms/snooper||2012-11-28|Has expired: No more public distfiles graphics/xfig-devel|graphics/xfig|2012-11-28|Has expired: Stable version is more recent than devel version irc/irchat-jp||2012-11-28|Has expired: No more public distfiles games/xcogitate||2012-11-28|Has expired: No more public distfiles emulators/gcube||2012-11-28|Has expired: No more public distfiles games/stepbill||2012-11-28|Has expired: No more public distfiles deskutils/ktagebuch||2012-11-28|Has expired: No more public distfiles games/jetpack||2012-11-28|Has expired: No more public distfiles games/tremor||2012-11-28|Has expired: No more public distfiles graphics/jpeg2pdf||2012-11-28|Has expired: No more public distfiles java/westhawksnmp||2012-11-28|Has expired: No more public distfiles japanese/tcl76||2012-11-28|Has expired: No more public distfiles math/stepulator||2012-11-28|Has expired: No more public distfiles editors/jedit-devel|editors/jedit|2012-11-28|Has expired: Stable version is more recent than devel www/trac-wikirename||2012-11-28|Has expired: Functionality of this plugin is included in the Trac core since 0.12 www/p5-Sledge||2012-11-28|Has expired: depends on mod_perl 1 which is gone www/p5-Sledge-Plugin-CacheContent||2012-11-28|Has expired: depends on mod_perl 1 which is gone www/p5-Sledge-Plugin-Download||2012-11-28|Has expired: depends on mod_perl 1 which is gone www/p5-Sledge-Plugin-Dumper||2012-11-28|Has expired: depends on mod_perl 1 which is gone www/p5-Sledge-Plugin-HTML2HDML||2012-11-28|Has expired: depends on mod_perl 1 which is gone www/p5-Sledge-Plugin-Log||2012-11-28|Has expired: depends on mod_perl 1 which is gone www/p5-Sledge-Plugin-NoCache||2012-11-28|Has expired: depends on mod_perl 1 which is gone www/p5-Sledge-Plugin-SaveUpload||2012-11-28|Has expired: depends on mod_perl 1 which is gone www/p5-Sledge-Plugin-ScratchPad||2012-11-28|Has expired: depends on mod_perl 1 which is gone www/p5-Sledge-Plugin-SessionAutoCleanup||2012-11-28|Has expired: depends on mod_perl 1 which is gone www/p5-Sledge-Plugin-XSLT||2012-11-28|Has expired: depends on mod_perl 1 which is gone www/p5-Sledge-SessionManager-CookieStore||2012-11-28|Removed depends on mod_perl 1 which is gone www/p5-Sledge-Template-Expr||2012-11-28|Removed depends on mod_perl 1 which is gone mail/vchkuser|mail/qmail-spamcontrol|2012-11-28|Has expired: mail/qmail-spamcontrol replaces this port chinese/pyDict||2012-11-28|Removed: Depends on the expired gtkglarea through py-gtk x11-toolkits/py-gtk||2012-11-28|Has expired: Depends on the expired gtkglarea devel/portlet-api||2012-11-28|Has expired: No more public distfiles net/amqp08||2012-11-29|Has expired: No more public distfiles games/kmquake2||2012-11-29|Has expired: No more public distfiles www/jetspeed||2012-11-30|Has expired: Dead upstream deskutils/abacus||2012-12-03|Has expired: Dead upstream lang/tcl82||2012-12-03|No longer developed, no more consumers x11-toolkits/tk82||2012-12-03|No longer developed, no more consumers astro/prune|astro/gpsprune|2012-12-03|Project was renamed net-p2p/limewire||2012-12-07|Has expired: Abandoned up stream java/diablo-jre16|java/openjdk6-jre|2012-12-10|Has expired: Outdated, consider using openjdk6 or openjdk7 java/diablo-jdk16|java/openjdk6|2012-12-10|Has expired: Outdated, consider using openjdk6 or openjdk7 java/diablo-jre15|java/openjdk6-jre|2012-12-10|Has expired: Outdated, consider using openjdk6 or openjdk7 java/diablo-jdk15|java/openjdk6|2012-12-10|Has expired: Outdated, consider using openjdk6 or openjdk7 java/jdk15|java/openjdk6|2012-12-10|Has expired: EOLed upstream since October 2009 java/jdk16|java/openjdk6|2012-12-10|Has expired: Outdated, consider using openjdk6 or openjdk7 java/linux-sun-jre15|java/linux-sun-jre16|2012-12-10|Has expired: EOLed upstream since October 2009 java/linux-sun-jdk15|java/linux-sun-jdk16|2012-12-10|Has expired: EOLed upstream since October 2009 java/jdk15-doc|java/jdk16-doc|2012-12-10|Has expired: EOLed upstream since October 2009 science/py-openbabel||2012-12-11|Merged to science/openbabel www/moodle2|www/moodle23|2012-12-11|Renamed deskutils/horde-hermes|deskutils/horde3-hermes|2012-12-12|Rename of old horde apps deskutils/horde-klutz|deskutils/horde3-klutz|2012-12-12|Rename of old horde apps devel/horde-chora|devel/horde3-chora|2012-12-12|Rename of old horde apps mail/horde-dimp|mail/horde3-dimp|2012-12-12|Rename of old horde apps mail/horde-forwards|mail/horde3-forwards|2012-12-12|Rename of old horde apps mail/horde-mimp|mail/horde3-mimp|2012-12-12|Rename of old horde apps mail/horde-vacation|mail/horde3-vacation|2012-12-12|Rename of old horde apps net-mgmt/horde-nic|net-mgmt/horde3-nic|2012-12-12|Rename of old horde apps security/horde-jeta|security/horde3-jeta|2012-12-12|Rename of old horde apps www/horde-meta|www/horde3-meta|2012-12-12|Rename of old horde apps x11-toolkits/fltk-threads|x11-toolkits/fltk|2012-12-12|Threads are on by default x11-fonts/gentium|x11-fonts/gentium-plus|2012-12-15|Track upstream name changes devel/pear-Horde_DataTree||2012-12-16|Obsolete in horde5 deskutils/doodle||2012-12-17|Has expired: Broken for more than 6 months www/horde4-ansel|www/horde-ansel|2012-12-18|Move horde4-* apps to horde-* www/horde4-base|www/horde-base|2012-12-18|Move horde4-* apps to horde-* www/horde4-passwd|www/horde-passwd|2012-12-18|Move horde4-* apps to horde-* www/horde4-wicked|www/horde-wicked|2012-12-18|Move horde4-* apps to horde-* deskutils/horde4-groupware|deskutils/horde-groupware|2012-12-18|Move horde4-* apps to horde-* deskutils/horde4-kronolith|deskutils/horde-kronolith|2012-12-18|Move horde4-* apps to horde-* deskutils/horde4-mnemo|deskutils/horde-mnemo|2012-12-18|Move horde4-* apps to horde-* deskutils/horde4-nag|deskutils/horde-nag|2012-12-18|Move horde4-* apps to horde-* devel/horde4-content|devel/horde-content|2012-12-18|Move horde4-* apps to horde-* devel/horde4-timeobjects|devel/horde-timeobjects|2012-12-18|Move horde4-* apps to horde-* devel/horde4-whups|devel/horde-whups|2012-12-18|Move horde4-* apps to horde-* ftp/horde4-gollem|ftp/horde-gollem|2012-12-18|Move horde4-* apps to horde-* mail/horde4-imp|mail/horde-imp|2012-12-18|Move horde4-* apps to horde-* mail/horde4-ingo|mail/horde-ingo|2012-12-18|Move horde4-* apps to horde-* mail/horde4-turba|mail/horde-turba|2012-12-18|Move horde4-* apps to horde-* mail/horde4-webmail|mail/horde-webmail|2012-12-18|Move horde4-* apps to horde-* textproc/hs-xml2html||2012-12-20|Removed: this package is obsolete sysutils/makefs||2012-12-21|Has expired: Part of base in an earlier version for every supported FreeBSD version textproc/docproj-jadetex|textproc/docproj|2013-01-03|Moved: Replace by textproc/docproj ports-mgmt/portmanager||2013-01-06|Has expired: Does not support modern ports features such as MOVED, is lacking upstream and active contributions, and does not support pkgng. Consider using ports-mgmt/portmaster, ports-mgmt/portupgrade or pkgng net-im/openfetion||2013-01-06|Has expired: Abandoned upstream textproc/libpathan||2013-01-06|Has expired: Does not build and upstream has discontinued the project and advises that it has been replaced by textproc/xqilla java/sun-wtk||2013-01-06|Has expired: no more public distfiles, merged with Java ME SDK 3.0 upstream databases/hypertable||2013-01-06|Has expired: Broken for more than 6 months graphics/autopano-sift||2013-01-06|Has expired: Disappeared from vendor site. No longer required by graphics/hugin misc/airoflash||2013-01-06|Has expired: Broken for more than 6 months x11-themes/kde-icons-krystaline||2013-01-06|Has expired: Broken for more than 6 months x11-themes/kde-icons-amaranth||2013-01-06|Has expired: Broken for more than 6 months x11-themes/kde-icons-realistic||2013-01-06|Has expired: Broken for more than 6 months x11/Terminal|x11/xfce4-terminal|2013-01-06|Project was renamed sysutils/syslog-ng-rc|sysutils/syslog-ng-devel|2013-01-08|No longer used by our upline, use syslog-ng-devel instead www/openbravoerp||2013-01-12|Has expired: incompatible with ant for building devel/lbpp||2013-01-13|Has expired: Dead upstream since 2001 devel/titano||2013-01-13|Has expired: Dead upstream since 2001 games/py-anki|games/anki|2013-01-16|Project was merged mail/claws-mail-synce||2013-01-16|Has expired: No longer supported by Claws Mail team databases/postgresql-plpython|databases/postgresql90-plpython|2013-01-20|This port was split out to several versioned ports net-mgmt/nfdump-devel||2013-01-22|Has expired: use nfdump instead devel/p4v||2013-01-22|No longer publishes FreeBSD version multimedia/libdvdplay||2013-01-27|Has expired: No more public_distfiles www/p5-Bundle-Sledge||2013-01-27|Removed databases/ruby-kyotocabinet||2013-01-27|Has expired: Broken for more than 6 months x11-themes/kde-icons-amaranth-althaea||2013-01-27|Has expired: Broken for more than 6 months net/bpfstat||2013-01-27|Has expired: Merge in netstat on all supported version of FreeBSD x11-toolkits/fltk11||2013-01-27|Has expired: new code should use /x11-toolkits/fltk sysutils/salt|sysutils/py-salt|2013-01-27|Rename to consistency with other Python ports sysutils/salt-cloud|sysutils/py-salt-cloud|2013-01-27|Rename to consistency with other Python ports deskutils/py-dosage|deskutils/dosage|2013-01-28|Rename - it's a standalone application textproc/clucene-contrib|textproc/clucene|2013-01-28|Integrated into textproc/clucene lang/erlang14||2013-01-30|Not needed; no issues came up with R15 www/tomcat55||2013-01-31|Has expired: EOL and unsupported upstream net/samba-pdbsql||2013-01-31|Depends from the obsoleted net/samba34 net/samba35||2013-01-31|Obsoleted by net/samba36 devel/llvm29|devel/llvm|2013-02-01|Obsolete and unmaintained lang/llvm-gcc4|lang/dragonegg46|2013-02-01|Obsolete and unmaintained net-mgmt/nagiosgrapher||2013-02-02|Has expired: Deprecated upstream. Please use net-mgmt/pnp instead x11-fm/x-files||2013-02-02|Has expired: Project has been abandoned devel/kdebindings4-perl-perlkde|devel/p5-perlkde|2013-02-03|Renamed devel/kdebindings4-perl-perlqt|devel/p5-perlqt|2013-02-03|Renamed devel/kdebindings4-python-krosspython|devel/py-krosspython|2013-02-03|Renamed devel/kdebindings4-python-pykde4|devel/py-pykde4|2013-02-03|Renamed devel/kdebindings4-python-pykdeuic4|devel/py-pykdeuic4|2013-02-03|Renamed devel/kdebindings4-ruby-korundum|devel/ruby-korundum|2013-02-03|Renamed devel/kdebindings4-ruby-krossruby|devel/ruby-krossruby|2013-02-03|Renamed devel/kdebindings4-ruby-qtruby|devel/ruby-qtruby|2013-02-03|Renamed devel/kdebindings4-smoke-smokegen|devel/smokegen|2013-02-03|Renamed devel/kdebindings4-smoke-smokekde|devel/smokekde|2013-02-03|Renamed devel/kdebindings4-smoke-smokeqt|devel/smokeqt|2013-02-03|Renamed net/freeradius||2013-02-04|Has expired: no longer supported. Please use net/freeradius2 instead net/freeradius-mysql||2013-02-04|Has expired: no longer supported. Please use net/freeradius2 instead multimedia/despotify||2013-02-04|Has expired: API no longer supported irc/zircon||2013-02-04|Has expired: Project has been abandoned math/lensnns||2013-02-04|Has expired: Project has been abandoned lang/perl5.8||2013-02-04|Has expired: no longer under development, use lang/perl5.16 or lang/perl5.14 lang/perl5.10||2013-02-04|Has expired: no longer under development, use lang/perl5.16 or lang/perl5.14 net-mgmt/argus||2013-02-05|Has expired: Using of this branch of argus is discouraged. Please migrate to net-mgmt/argus3 net-mgmt/argus-clients||2013-02-05|Has expired: Using of this branch of argus-clients is discouraged. Please migrate to net-mgmt/argus3-clients net/libcmis03|net/libcmis|2013-02-05|libcmis has been updated to 0.3 x11-toolkits/fltk2||2013-02-05|Has expired: No more public distfiles for version 2 devel/kBuild-devel||2013-02-05|Not required anymore; use devel/kBuild instead games/freebsd-carddeck-kde4||2013-02-05|Has expired: deck file format is obsolete japanese/vflib||2013-02-06|Has expired: No more public distfiles graphics/py-visual||2013-02-06|Has expired: Depends on the expired x11-toolkits/gtkglarea math/gnuplot+||2013-02-06|Upstream says: This package is obsolete. The author does not recommend to use it science/vis5d+||2013-02-06|No new release since 2001, depends on expired x11-toolkits/gtkglarea lang/tcl-modules||2013-02-06|Modules are now part of the base Tcl distributions lang/tcl84-thread||2013-02-06|Threads are now enabled by default lang/tcl85-thread||2013-02-06|Threads are now enabled by default lang/tcl86-thread||2013-02-06|Threads are now enabled by default x11-toolkits/tk84-thread||2013-02-06|Threads are now enabled by default x11-toolkits/tk85-thread||2013-02-06|Threads are now enabled by default x11-toolkits/tk86-thread||2013-02-06|Threads are now enabled by default x11-fm/fsv||2013-02-14|Depends on expired x11-toolkits/gtkglarea x11-toolkits/gtkglarea||2013-02-14|Has expired: No more public distfiles graphics/solang||2013-02-14|Has expired: Broken for more than 6 months math/octave-devel||2013-02-14|Has expired: Broken for more than 6 months net/spnetkit||2013-02-14|Has expired: Broken for more than 6 months devel/py-flakes|devel/py-pyflakes|2013-02-18|Renamed to correct upstream name net/libnet-devel|net/libnet|2013-02-18|Renamed to stable branch x11-fm/tkdesk||2013-02-19|Obsolete and unmaintained, doesn't run textproc/libmspub|print/libmspub|2013-02-21|Duplicate of print/libmspub x11-drivers/xf86-video-intel29||2013-02-21|No longer supported emulators/bsnes|emulators/higan|2013-02-22|Renamed upstream sysutils/fio|benchmarks/fio|2013-02-22|Moved to benchmarks category japanese/MT|www/MT|2013-02-23|Remove, because it was merged into main www/MT french/MT|www/MT|2013-02-23|Remove, because it was merged into main www/MT german/MT|www/MT|2013-02-23|Remove, because it was merged into main www/MT dns/p5-Net-DNS-ZoneFile||2013-02-25|Now bundled with dns/p5-Net-DNS textproc/stardict2-rptts|textproc/stardict-rptts|2013-02-25|Renamed audio/laudio|audio/linux-laudio|2013-02-27|Renamed (Linux binary port) multimedia/qt4-phonon||2013-02-27|Has expired: Qt 4.x uses multimedia/phonon multimedia/qt4-phonon-gst||2013-02-27|Has expired: Qt 4.x uses multimedia/phonon-gstreamer math/eigen||2013-02-27|Has expired: development for 1.x series has ceased, use math/eigen3 instead multimedia/ffmpeg-011||2013-03-01|Has expired: replaced with 1.0.x, use multimedia/ffmpeg1 instead ftp/ftp-tls||2013-03-02|Has expired: No longer maintained upstream ftp/ftpd-tls||2013-03-02|Has expired: No longer maintained upstream lang/eperl||2013-03-03|Has expired: Unfixed upstream remote vulnerability and no activity since 1998 x11-wm/e17-module-language||2013-03-03|Has expired: Deprecated upstream x11-wm/e17-module-xkbswitch||2013-03-03|Has expired: Merged into x11-wm/enlightenment x11-wm/e17-module-e-tiling||2013-03-03|Has expired: Deprecated upstream x11-wm/e17-module-quickaccess||2013-03-03|Has expired: Merged into x11-wm/enlightenment x11-wm/e17-module-tiling||2013-03-03|Has expired: Merged into x11-wm/enlightenment x11-wm/e17-module-drawer||2013-03-03|Has expired: Deprecated upstream x11-wm/e17-module-calendar||2013-03-03|Has expired: Deprecated upstream x11/oooqs||2013-03-03|Has expired: For old OOo versions; uses kde3; unmaintained upstream; see x11/oooqs2 www/xpi-customizegoogle||2013-03-03|Has expired: Add-on has been discontinued games/kimboot||2013-03-03|Has expired: no longer works net-im/imcom||2013-03-03|Has expired: No more upstream, no more public distfiles security/lep||2013-03-03|Has expired: No more upstream, no more public distfiles devel/cvsmapfs||2013-03-03|Has expired: No more upstream, no more public distfiles devel/sid||2013-03-03|Has expired: No more upstream, no more public distfiles net-mgmt/nrpep||2013-03-03|Has expired: No more upstream, no more public distfiles devel/py-ez_xml||2013-03-03|Has expired: No more upstream, no more public distfiles security/IMHear||2013-03-03|Has expired: No more upstream, no more public distfiles comms/scud||2013-03-03|Has expired: No more upstream, no more public distfiles devel/lexi||2013-03-03|Has expired: No more upstream, no more public distfiles games/pentix||2013-03-03|Has expired: No more upstream, no more public distfiles net/py-mp-random||2013-03-03|Has expired: No more upstream, no more public distfiles sysutils/rcsedit||2013-03-03|Has expired: No more upstream, no more public distfiles sysutils/bsdsar||2013-03-03|Has expired: No more upstream, no more public distfiles sysutils/sarah||2013-03-03|Has expired: No more upstream, no more public distfiles www/igal||2013-03-03|Has expired: No more upstream, no more public distfiles, consider using www/llgal finance/tinyerp-server||2013-03-03|Has expired: No more upstream, no more public distfiles, consider using finance/openerp-server ports-mgmt/portcheck||2013-03-03|Has expired: No more upstream, no more public distfiles security/sslproxy||2013-03-03|Has expired: Abandoned upstream x11-themes/e17-theme-darkness||2013-03-03|Has expired: No more public distfiles x11-themes/e17-theme-cthulhain||2013-03-03|Has expired: Dead upstream since 2008 x11-servers/driglide||2013-03-03|Has expired: 3dfx is dead, fails to compile on recent versions of FreeBSD mail/gmime||2013-03-03|Has expired: superseded with version 2.4 archivers/bsdar||2013-03-03|Has expired: part of the base system now misc/instant-server||2013-03-04|Removed: Non-essential meta port sysutils/sge60||2013-03-06|Has expired: Ancient and unsupported release sysutils/sge61||2013-03-06|Has expired: Ancient and unsupported release x11-themes/sapphire-themes||2013-03-06|Has expired: Broken for more than 6 months misc/fep||2013-03-06|Has expired: Broken for more than 6 months devel/gauche-gaunit||2013-03-06|Has expired: Broken for more than 6 months games/tuxracer_golf||2013-03-06|Has expired: Broken for more than 6 months net/bfilter||2013-03-06|Has expired: Broken for more than 6 months graphics/fnlib||2013-03-06|Has expired: Broken for more than 6 months print/gfontview||2013-03-06|Has expired: Broken for more than 6 months print/hugelatex||2013-03-06|Has expired: Broken for more than 6 months misc/gtktalog||2013-03-06|Has expired: Broken for more than 6 months x11/wterm||2013-03-06|Has expired: Broken for more than 6 months databases/xapian-bindings10||2013-03-06|Has expired: Broken for more than 6 months databases/adstudio||2013-03-06|Has expired: Broken for more than 6 months misc/splitvt||2013-03-06|Has expired: Broken for more than 6 months sysutils/udesc_dump||2013-03-06|Has expired: Broken for more than 6 months textproc/gxditview||2013-03-06|Has expired: Broken for more than 6 months x11/powershell||2013-03-06|Has expired: Broken for more than 6 months devel/ZendOptimizer|www/pecl-zendoptimizerplus|2013-03-07|Replaced with supported open-source release net-im/jreen|net-im/libjreen|2013-03-07|Duplicate of net-im/libjreen databases/ruby-dbdbd||2013-03-08|Dead project, no known users japanese/scim-mozc||2013-03-09|Google had dropped SCIM support from Mozc net-p2p/transmission25|net-p2p/transmission|2013-03-09|gtk version is now fine net-p2p/transmission25-cli|net-p2p/transmission-cli|2013-03-09|gtk version is now fine net-p2p/transmission25-daemon|net-p2p/transmission-daemon|2013-03-09|gtk version is now fine net-p2p/transmission25-gtk2|net-p2p/transmission-gtk2|2013-03-09|gtk version is now fine net-p2p/transmission25-qt4|net-p2p/transmission-qt4|2013-03-09|gtk version is now fine www/transmission25-web|www/transmission-web|2013-03-09|gtk version is now fine net-p2p/transmission-gtk2|net-p2p/transmission-gtk|2013-03-09|Now uses GTK 3 ftp/proma||2013-03-09|Has expired: Broken for more than 6 months vietnamese/vnelvis||2013-03-09|Has expired: Broken for more than 6 months devel/rubygem-ncursesw||2013-03-09|Has expired: Broken for more than 6 months www/wyvern||2013-03-09|Has expired: Broken for more than 6 months devel/xlslib||2013-03-09|Has expired: Broken for more than 6 months mail/firetray||2013-03-09|Has expired: Broken for more than 6 months vietnamese/vnterm||2013-03-09|Has expired: Broken for more than 6 months graphics/vid||2013-03-09|Has expired: Broken for more than 6 months games/kye-data||2013-03-12|Deleted: Merged with games/kye misc/gopod||2013-03-13|Has expired: does not work with modern iPods anymore misc/gtk-gopod||2013-03-13|Has expired: does not work with modern iPods anymore emulators/vmware-tools5||2013-03-14|Has expired: No more supported upstream emulators/vmware-tools6||2013-03-14|Has expired: No more supported upstream emulators/vmware-tools4||2013-03-14|Has expired: No more supported upstream emulators/vmware-guestd4||2013-03-14|Has expired: No more supported upstream emulators/linux-vmware-toolbox6||2013-03-14|Has expired: No more supported upstream emulators/vmware-guestd6||2013-03-14|Has expired: No more supported upstream emulators/linux-vmware-toolbox4||2013-03-14|Has expired: No more supported upstream emulators/linux-vmware-toolbox5||2013-03-14|Has expired: No more supported upstream emulators/vmware-guestd5||2013-03-14|Has expired: No more supported upstream net-mgmt/zabbix-agent|net-mgmt/zabbix2-agent|2013-03-15|Has expired: no longer supported by upstream net-mgmt/zabbix-frontend|net-mgmt/zabbix2-frontend|2013-03-15|Has expired: no longer supported by upstream net-mgmt/zabbix-proxy|net-mgmt/zabbix2-proxy|2013-03-15|Has expired: no longer supported by upstream net-mgmt/zabbix-server|net-mgmt/zabbix2-server|2013-03-15|Has expired: no longer supported by upstream dns/h2n||2013-03-17|Removed: legally questionable and obsolete french/gibi||2013-03-18|Removed: IGNORE for more than 6 months finance/pfpro||2013-03-18|Removed: upstream no longer exists finance/p5-PFProAPI||2013-03-18|Removed: upstream no longer exists finance/p5-Business-OnlinePayment-PayflowPro||2013-03-18|Removed: upstream no longer exists www/nspluginwrapper-devel||2013-03-19|Removed: superseded by www/nspluginwrapper french/eficas_doc||2013-03-19|Removed: eficas is now able to open the documentation through a web browser so the PDF files are no longer included archivers/zpaq|archivers/paq|2013-03-20|Part of archivers/paq editors/openoffice.org-vcltesttool||2013-03-21|Removed: no longer used for OpenOffice QA editors/openoffice-3-devel|editors/openoffice-devel|2013-03-21|Renamed to match current version number devel/geany-plugin-gdb||2013-03-21|Removed from geany plugins distribution www/kompozer||2013-03-22|Has expired: Dead upstream graphics/fpc-fpvectorial||2013-03-23|Removed from freepascal packages distribution databases/akonadi-google|deskutils/kdepim4-runtime|2013-03-24|Merged into deskutils/kdepim4-runtime www/pecl-zendoptimizerplus|www/pecl-zendopcache|2013-03-27|Renamed print/kdeutils4-printer-applet|print/kde4-print-manager|2013-03-27|Superseded by print/kde4-print-manager print/system-config-printer-kde|print/kde4-print-manager|2013-03-27|Superseded by print/kde4-print-manager science/py-biolccc|science/pyteomics.biolccc|2013-03-28|Renamed upstream math/hs-Agda-executable||2013-03-29|Removed: it has become part of math/hs-Agda mail/thunderbird-esr|mail/thunderbird|2013-04-03|Removed: Mozilla stopped providing 2 versions of thunderbird mail/thunderbird-esr-i18n|mail/thunderbird-i18n|2013-04-03|Removed: Mozilla stopped providing 2 versions of thunderbird www/mod_security21|www/mod_security|2013-04-16|Removed: outdated and had a vulnerability, consider using a newer version www/linux-flashplugin9||2013-04-16|Has expired: Vulnerable, Broken for more than 6 months www/p5-Apache-GopherHandler||2013-04-16|Has expired: Depends on p5-Net-Gopher which is deprecated and expired net/p5-Gopher-Server||2013-04-16|Has expired: Depends on p5-Net-Gopher which is deprecated and expired net/p5-Net-Gopher||2013-04-16|Has expired: gone from CPAN x11-drivers/xf86-video-radeonhd-devel||2013-04-16|Has expired: Unsupported devel version devel/ros-image_common||2013-04-16|Has expired: Depends on devel/ros_common which is broken for more than 6 months devel/ros-laser_pipeline||2013-04-16|Has expired: Depends on devel/ros_common which is broken for more than 6 months databases/php52-rrdtool||2013-04-16|Has expired: PHP 5.2 series is strongly discouraged for new installations, migrate now devel/ros-common||2013-04-16|Has expired: Broken for more than 6 months devel/goffice04||2013-04-16|Removed: No users, blocking libgsf update devel/goffice06||2013-04-16|Removed: No users, blocking libgsf update devel/goffice1||2013-04-16|Removed: Only one port user which has no user itself. blocking libgsf update devel/present||2013-04-16|Removed: No users, blocking libgsf update audio/icecast|audio/icecast2|2013-04-18|Has expired: Unmaintained upstream since 2004. Use audio/icecast2 instead net-im/gajim-devel|net-im/gajim|2013-04-18|Has expired: This port is outdated for two years, no distfile available. Please use net-im/gajim instead dns/bind97||2013-04-20|Has expired: No longer supported by ISC, use Bind 9.8 or 9.9 dns/bind97-sdb||2013-04-20|Has expired: No longer supported by ISC, use Bind 9.8 or 9.9 sysutils/grub||2013-04-22|Unmaintained and broken sysutils/kgrubeditor||2013-04-22|Depends on broken and removed grub port games/grubinvaders||2013-04-22|Depends on broken and removed grub port lang/tcl83||2013-04-23|Has expired: No longer supported x11-toolkits/tk83||2013-04-23|Has expired: No longer supported print/psutils-a4|print/psutils|2013-04-24|Merged into print/psutils print/psutils-letter|print/psutils|2013-04-24|Merged into print/psutils editors/tamago-emacs21||2013-04-24|Removed: obsolete devel/py-extended_threading||2013-04-26|Has expired: checksum mismatch; domain disappeared databases/mysql41-server||2013-04-26|Unsupported upstream since 2009-12-31 databases/mysql41-client||2013-04-26|Unsupported upstream since 2009-12-31 databases/mysql41-scripts||2013-04-26|Unsupported upstream since 2009-12-31 databases/p5-DBD-mysql41||2013-04-26|Depends on databases/mysql41-server, which was removed security/gnupg-idea|security/gnupg1|2013-04-26|Modules now included in GnuPG 1.4.13 print/c2ps-letter|print/c2ps|2013-04-27|Merged into print/c2ps print/c2ps-a4|print/c2ps|2013-04-27|Merged into print/c2ps print/lprps-letter|print/lprps|2013-04-27|Merged into print/lprps print/lprps-a4|print/lprps|2013-04-27|Merged into print/lprps graphics/jpeg2ps-letter|graphics/jpeg2ps|2013-04-27|Merged into graphics/jpeg2ps graphics/jpeg2ps-a4|graphics/jpeg2ps|2013-04-27|Merged into graphics/jpeg2ps print/a2ps-letter|print/a2ps|2013-04-27|Merged into print/a2ps print/a2ps-letterdj|print/a2ps|2013-04-27|Merged into print/a2ps print/a2ps-a4|print/a2ps|2013-04-27|Merged into print/a2ps print/html2ps-letter|print/html2ps|2013-04-28|Merged into print/html2ps print/html2ps-a4|print/html2ps|2013-04-28|Merged into print/html2ps devel/libusb||2013-04-30|Has expired: has been already included into base system www/typo346||2013-04-30|Has expired: Obsolete stable release www/ilias3||2013-04-30|Has expired: Obsolete stable release net-p2p/moodriver||2013-04-30|Has expired: Not supported by upstream, master site is down www/p5-Dancer-Plugin-DataFu||2013-04-30|Has expired: No more public distfiles devel/p5-Oogly||2013-04-30|Has expired: No more public distfiles mail/listmanager||2013-04-30|Has expired: No more upstream, no more public distfiles net-mgmt/nettop||2013-04-30|Has expired: Dead upstream devel/ruby-term-ansicolor|devel/rubygem-term-ansicolor|2013-04-30|Moved to Rubygems www/mediawiki|www/mediawiki119|2013-05-01|Rename mediawiki to mediawiki119 www/squid31||2013-05-01|Has expired: No longer actively maintained upstream converters/ruby-bsdconv|converters/rubygem-bsdconv|2013-05-01|Moved to Rubygems editors/nxml-emacs21||2013-05-02|Removed: obsolete textproc/ruby-libxml||2013-05-02|Has expired: Does not work with Ruby 1.9 japanese/navi2ch-emacs21|japanese/navi2ch|2013-05-02|Removed: obsolete japanese/navi2ch-xemacs21-mule|japanese/navi2ch|2013-05-02|Removed: obsolete devel/py-libgsf||2013-05-05|No longer supported by newer libgsf version devel/libgsf-gnome||2013-05-05|No longer supported by newer libgsf version textproc/ruby-sablot||2013-05-07|Has expired: Does not work with Ruby 1.9 japanese/jisx0213-fonts|japanese/font-jisx0213|2013-05-08|Renamed x11-drivers/xf86-video-ati613||2013-05-10|Has expired: Old version, use xf86-video-ati instead devel/u-boot|devel/uboot-mkimage|2013-05-11|Port does not build full uboot distribution, only mkimage misc/py-xdelta3||2013-05-13|No longer actively maintained upstream devel/py-celementtree||2013-05-16|Included into all supported python versions as xml.etree.cElementTree textproc/p5-KinoSearch||2013-05-16|Replaced by textproc/p5-KinoSearch1 converters/R-cran-xtable||2013-05-17|Removed science/py-obspy.db||2013-05-17|Removed: Use science/py-obspy instead science/py-obspy.gse2||2013-05-17|Removed: Use science/py-obspy instead science/py-obspy.imaging||2013-05-17|Removed: Use science/py-obspy instead science/py-obspy.iris||2013-05-17|Removed: Use science/py-obspy instead science/py-obspy.mseed||2013-05-17|Removed: Use science/py-obspy instead science/py-obspy.signal||2013-05-17|Removed: Use science/py-obspy instead science/py-obspy.taup||2013-05-17|Removed: Use science/py-obspy instead science/py-obspy.wav||2013-05-17|Removed: Use science/py-obspy instead science/py-obspy.xseed||2013-05-17|Removed: Use science/py-obspy instead science/py-obspy-core|science/py-obspy|2013-05-17|Use science/py-obspy instead mail/sendmail-ldap|mail/sendmail|2013-05-17|Removed: Use mail/sendmail instead databases/innobackup|databases/xtrabackup|2013-05-18|Removed: Use databases/xtrabackup instead audio/gogo-petit||2013-05-20|Has expired: No more public distfiles x11-wm/transset-df|x11-wm/transset|2013-05-20|Project was renamed print/yatex-xemacs||2013-05-21|Removed: obsolete devel/php5-phing|devel/pear-phing|2013-05-21|Replaced by devel/pear-phing emulators/hfsutils|sysutils/hfsutils|2013-05-23|Moved to a better category devel/lfc|devel/lfcbase|2013-05-23|Rename to avoid package conflicts sysutils/rsyslog5||2013-05-25|Removed: use sysutils/rsyslog7 sysutils/rsyslog5-dbi||2013-05-25|Removed: use sysutils/rsyslog7 sysutils/rsyslog5-gnutls||2013-05-25|Removed: use sysutils/rsyslog7 sysutils/rsyslog5-gssapi||2013-05-25|Removed: use sysutils/rsyslog7 sysutils/rsyslog5-mysql||2013-05-25|Removed: use sysutils/rsyslog7 sysutils/rsyslog5-pgsql||2013-05-25|Removed: use sysutils/rsyslog7 sysutils/rsyslog5-relp||2013-05-25|Removed: use sysutils/rsyslog7 sysutils/rsyslog5-rfc3195||2013-05-25|Removed: use sysutils/rsyslog7 sysutils/rsyslog5-snmp||2013-05-25|Removed: use sysutils/rsyslog7 accessibility/linux-atk||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life archivers/linux-ucl||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life archivers/linux-upx||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life audio/linux-alsa-lib||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life audio/linux-arts||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life audio/linux-esound||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life audio/linux-freealut||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life audio/linux-libaudiofile||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life audio/linux-libmad||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life audio/linux-libogg||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life audio/linux-libvorbis||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life audio/linux-mikmod||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life audio/linux-nas-libs||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life audio/linux-openal||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life audio/linux-sdl_mixer||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life devel/linux-allegro||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life devel/linux-libglade||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life devel/linux-libglade2||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life devel/linux-libsigc++20||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life devel/linux-sdl12||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life emulators/linux-libaio||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life emulators/linux_base-fc4||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life ftp/linux-curl||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life graphics/linux-cairo||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life graphics/linux-gdk-pixbuf||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life graphics/linux-imlib||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life graphics/linux-jpeg||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life graphics/linux-libGLU||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life graphics/linux-libmng||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life graphics/linux-png||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life graphics/linux-png10||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life graphics/linux-sdl_image||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life graphics/linux-tiff||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life graphics/linux-ungif||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life lang/linux-libg2c||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life multimedia/linux-libtheora||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life security/linux-openssl||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life sysutils/linux-procps||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life textproc/linux-aspell||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life textproc/linux-expat||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life textproc/linux-libxml||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life textproc/linux-libxml2||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life textproc/linux-scim-gtk||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life textproc/linux-scim-libs||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life textproc/linux-xerces-c2||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life x11/linux-xorg-libs||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life x11-fonts/linux-fontconfig||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life x11-toolkits/linux-gtk||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life x11-toolkits/linux-gtk2||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life x11-toolkits/linux-openmotif||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life x11-toolkits/linux-pango||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life x11-toolkits/linux-qt33||2013-05-30|Has expired: Only used on FreeBSD 7, which is end-of-life irc/bitchx-devel|irc/bitchx|2013-05-31|Release finally cut www/rubygem-selnium-webdriver|www/rubygem-selenium-webdriver|2013-06-01|Fix typo in port name mail/p5-vpopmail||2013-06-03|Has expired: Broken for more than 6 months mail/vodmr||2013-06-03|Has expired: depends on expired mail/p5-vpopmail devel/libzrtp||2013-06-03|Has expired: No more public distfiles mail/postfix26||2013-06-03|Has expired: No longer supported by upstream devel/i386-rtems-gcc||2013-06-03|Has expired: many issues; see https://www.rtems.org/bugzilla/show_bug.cgi?id=2099 devel/mips-rtems-gcc||2013-06-03|Has expired: many issues; see https://www.rtems.org/bugzilla/show_bug.cgi?id=2099 devel/arm-rtems-gcc||2013-06-03|Has expired: many issues; see https://www.rtems.org/bugzilla/show_bug.cgi?id=2099 devel/sh-rtems-gcc||2013-06-03|Has expired: many issues; see https://www.rtems.org/bugzilla/show_bug.cgi?id=2099 devel/powerpc-rtems-gcc||2013-06-03|Has expired: many issues; see https://www.rtems.org/bugzilla/show_bug.cgi?id=2099 devel/sparc-rtems-gcc||2013-06-03|Has expired: many issues; see https://www.rtems.org/bugzilla/show_bug.cgi?id=2099 devel/mips-rtems-binutils||2013-06-03|Has expired: many issues; see https://www.rtems.org/bugzilla/show_bug.cgi?id=2099 devel/i386-rtems-binutils||2013-06-03|Has expired: many issues; see https://www.rtems.org/bugzilla/show_bug.cgi?id=2099 devel/sh-rtems-binutils||2013-06-03|Has expired: many issues; see https://www.rtems.org/bugzilla/show_bug.cgi?id=2099 devel/powerpc-rtems-binutils||2013-06-03|Has expired: many issues; see https://www.rtems.org/bugzilla/show_bug.cgi?id=2099 devel/sparc-rtems-binutils||2013-06-03|Has expired: many issues; see https://www.rtems.org/bugzilla/show_bug.cgi?id=2099 devel/arm-rtems-binutils||2013-06-03|Has expired: many issues; see https://www.rtems.org/bugzilla/show_bug.cgi?id=2099 devel/m68k-rtems-binutils||2013-06-03|Has expired: many issues; see https://www.rtems.org/bugzilla/show_bug.cgi?id=2099 devel/m68k-rtems-gcc||2013-06-03|Has expired: many issues; see https://www.rtems.org/bugzilla/show_bug.cgi?id=2099 devel/sh-rtems-gdb||2013-06-03|Has expired: many issues; see https://www.rtems.org/bugzilla/show_bug.cgi?id=2099 devel/m68k-rtems-gdb||2013-06-03|Has expired: many issues; see https://www.rtems.org/bugzilla/show_bug.cgi?id=2099 devel/i386-rtems-gdb||2013-06-03|Has expired: many issues; see https://www.rtems.org/bugzilla/show_bug.cgi?id=2099 devel/arm-rtems-gdb||2013-06-03|Has expired: many issues; see https://www.rtems.org/bugzilla/show_bug.cgi?id=2099 devel/sparc-rtems-gdb||2013-06-03|Has expired: many issues; see https://www.rtems.org/bugzilla/show_bug.cgi?id=2099 devel/mips-rtems-gdb||2013-06-03|Has expired: many issues; see https://www.rtems.org/bugzilla/show_bug.cgi?id=2099 devel/powerpc-rtems-gdb||2013-06-03|Has expired: many issues; see https://www.rtems.org/bugzilla/show_bug.cgi?id=2099 databases/php-sqlite3||2013-06-03|Has expired: No upstream development and superseded by databases/php5-sqlite3 and databases/php53-sqlite3 databases/mysql50-server||2013-06-04|Unsupported upstream since 2012-01-09 databases/mysql50-client||2013-06-04|Unsupported upstream since 2012-01-09 databases/mysql50-scripts||2013-06-04|Unsupported upstream since 2012-01-09 databases/p5-DBD-mysql50||2013-06-04|Depends on databases/mysql50-server, which was removed databases/postgresql83-client||2013-06-04|Has expired: Update to supported version databases/postgresql83-contrib||2013-06-04|Has expired: Update to supported version databases/postgresql83-docs||2013-06-04|Has expired: Update to supported version databases/postgresql83-plperl||2013-06-04|Has expired: Update to supported version databases/postgresql83-plpython||2013-06-04|Has expired: Update to supported version databases/postgresql83-pltcl||2013-06-04|Has expired: Update to supported version databases/postgresql83-server||2013-06-04|Has expired: Update to supported version deskutils/msynctool-devel|deskutils/osynctool|2013-06-04|Development of msynctool ceased and project was renamed www/hs-yesod-default||2013-06-04|Removed: This package is obsoleted since Yesod 1.2 www/hs-yesod-json||2013-06-04|Removed: This package is obsoleted since Yesod 1.2 security/fwtk||2013-06-04|Removed: No more public distfiles net/samba34|net/samba36|2013-06-04|Removed: Unmaintained by upstream devel/linux-js||2013-06-04|Has expired: Broken for more than 6 months emulators/osmose||2013-06-04|Removed: depends on expired devel/linux-js security/pam_authsrv||2013-06-04|Removed: depends on expired and removed security/fwtk emulators/linux-xjoypad||2013-06-05|Removed: depend on expired devel/linux-js, consider using emulators/joytran instead lang/elisp-manual||2013-06-05|Has expired: Broken for more than 6 months sysutils/sge62||2013-06-05|Has expired: Ancient and unsupported release x11-toolkits/ruby-wx||2013-06-07|Has expired: Does not work with Ruby 1.9 sysutils/userspace-rcu|sysutils/liburcu|2013-06-07|Renamed correctly according to upstream mail/mixminion||2013-06-07|Has expired: This port requires python version, we haven't in the ports tree already devel/gprbuild-aux|devel/gprbuild|2013-06-10|Has expired: Deprecated in favor of devel/gprbuild devel/linuxthreads||2013-06-10|Has expired: Broken for more than 6 months mail/claws-mail-gtkhtml2_viewer|mail/claws-mail-fancy|2013-06-11|Has expired: No longer maintained, please use mail/claws-mail-fancy instead mail/claws-mail-cachesaver||2013-06-11|Has expired: No longer maintained by Claws Mail team deskutils/contacts||2013-06-13|Has expired: upstream project discontinued for years, upstream sources are gone www/libxul19|www/libxul|2013-06-15|Has been vulnerable for a long time, unsupported upstream chinese/cxterm||2013-06-17|Has expired: does not compile games/rtcw|games/linux-rtcw|2013-06-18|Renamed (Linux binary port) multimedia/p5-Video-Info||2013-06-19|Has expired: Broken for more than 6 months net-p2p/p5-pdonkey||2013-06-19|Removed: depends on expired multimedia/p5-Video-Info lang/boo||2013-06-19|Has expired: Broken for more than 6 months databases/py-MySQLdb41||2013-06-19|Depends on databases/mysql41-client, which was removed databases/py-MySQLdb50||2013-06-19|Depends on databases/mysql50-client, which was removed devel/bugzilla|devel/bugzilla40|2013-06-20|Renamed emulators/fceu-server|emulators/fceux|2013-06-21|Has expired: Replaced by emulators/fceux graphics/py-graphillion|math/py-graphillion|2013-06-22|Correct category assignment net-im/mikutter003||2013-06-23|Obsolete: Use net-im/mikutter instead of this www/rubygem-addressable22||2013-06-23|Removed textproc/freegrep||2013-06-27|Has expired: included in base www/siteatschool||2013-06-30|Has expired: Unmaintained upstream textproc/romdict||2013-06-30|Has expired: Upstream the project seems dead for years www/dillo-i18n||2013-06-30|Has expired: dillo1 is no longer actively maintained. Please consider using www/dillo2 which has full UTF-8 support www/dillo||2013-06-30|Has expired: dillo1 is no longer actively maintained. Please consider using www/dillo2 instead comms/qfaxreader||2013-06-30|Has expired: No activity upstream since 2006; uses Qt 3.x net/openldap23-sasl-client||2013-07-01|Has expired: Unmaintained by upstream net/openldap23-server||2013-07-01|Has expired: Unmaintained by upstream net/openldap23-client||2013-07-01|Has expired: Unmaintained by upstream www/py-django13||2013-07-01|Has expired: Unsupported version devel/libtifiles|devel/libtifiles2|2013-07-01|Has expired: Superseded by devel/libtifiles2 comms/libticables|comms/libticables2|2013-07-01|Has expired: Superseded by comms/libticables2 devel/libticalcs|comms/libticalcs2|2013-07-01|Has expired: Superseded by comms/libticalcs2 emulators/tiemu2|emulators/tiemu3|2013-07-01|Has expired: Superseded by emulators/tiemu3 graphics/linux_dri|graphics/linux-f10-dri|2013-07-03|Superseded by graphics/linux-f10-dri graphics/linux-dri74|graphics/linux-f10-dri|2013-07-03|Superseded by graphics/linux-f10-dri games/gnomememoryblocks||2013-07-04|Has expired: Unsupported upstream devel/py-reddit||2013-07-07|Has been removed from PyPI, Use www/py-praw games/speakinghangman||2013-07-07|Has expired: No more public distfiles security/pinentry-qt||2013-07-09|Removed: Qt 3.x ports have expired games/nethack34-qt|games/nethack34-gnome|2013-07-09|Uses unsupported Qt version audio/gdam||2013-07-10|Has expired: Broken for a while devel/gnome-vfs1||2013-07-10|Has expired: No more depend on, No more supported upstream textproc/ua-ispell|ukrainian/ispell|2013-07-10|Removed because it has been moved to ukrainian/ispell 12 years ago security/openvpn20|security/openvpn|2013-07-11|Has expired: Superseded by security/openvpn databases/embedded_innodb||2013-07-11|Has expired: The Embedded InnoDB project was terminated a few years ago print/lyx16|print/lyx|2013-07-11|Has expired: Unmaintained upstream, upgrading to the 2.x series is advised security/py-crack|security/py-cracklib|2013-07-11|Has expired: Superseded by security/py-cracklib x11-toolkits/linux-f10-qt33||2013-07-12|Removed net/urtwn-firmware-kmod||2013-07-12|Removed, part of base as of r253139 benchmarks/polygraph31||2013-07-13|Has expired: Broken since March 2010 net/avahi-qt3||2013-07-13|Depends on the expired Qt 3.x port www/xpi-gwt-dev-plugin||2013-07-15|Has expired: Requires an ancient version of Firefox to build security/pyobfsproxy|security/obfsproxy|2013-07-15|Rename devel/kdevelop-custom-buildsystem||2013-07-17|Has expired: part of devel/kdevelop-kde4 now ftp/p5-curl|www/p5-WWW-Curl|2013-07-17|Duplicate editors/code-browser||2013-07-18|Removed lang/copper||2013-07-18|Removed x11-themes/linux-gtk-bluecurve-theme||2013-07-18|Removed, requires Linux FC3 misc/rabbit|misc/rubygem-rabbit|2013-07-24|Moved to Rubygems sysutils/rsyslog6-devel-pgsql|sysutils/rsyslog7|2013-07-25|Has expired: Use sysutils/rsyslog7 sysutils/rsyslog6-devel-gnutls|sysutils/rsyslog7|2013-07-25|Has expired: Use sysutils/rsyslog7 sysutils/rsyslog6-devel-snmp|sysutils/rsyslog7|2013-07-25|Has expired: Use sysutils/rsyslog7 sysutils/rsyslog6-devel-rfc3195|sysutils/rsyslog7|2013-07-25|Has expired: Use sysutils/rsyslog7 sysutils/rsyslog6-devel-mysql|sysutils/rsyslog7|2013-07-25|Has expired: Use sysutils/rsyslog7 sysutils/rsyslog6-devel-relp|sysutils/rsyslog7|2013-07-25|Has expired: Use sysutils/rsyslog7 sysutils/rsyslog6-devel-dbi|sysutils/rsyslog7|2013-07-25|Has expired: Use sysutils/rsyslog7 sysutils/rsyslog6-devel-gssapi|sysutils/rsyslog7|2013-07-25|Has expired: Use sysutils/rsyslog7 sysutils/rsyslog6-devel|sysutils/rsyslog7|2013-07-25|Has expired: Use sysutils/rsyslog7 graphics/allegrogl||2013-07-26|Now part of devel/allegro arabic/kde3-i18n||2013-07-26|Has expired: Depends on Qt 3.x archivers/kio_p7zip||2013-07-26|Has expired: Depends on Qt 3.x astro/celestia-kde||2013-07-26|Has expired: Depends on Qt 3.x astro/orsa||2013-07-26|Has expired: Depends on Qt 3.x audio/amarok||2013-07-26|Has expired: Depends on Qt 3.x audio/amarok-fs||2013-07-26|Has expired: Depends on Qt 3.x audio/arts||2013-07-26|Has expired: Depends on Qt 3.x audio/cheesetracker||2013-07-26|Has expired: Depends on Qt 3.x audio/cynthiune||2013-07-26|Has expired: Depends on Qt 3.x audio/ermixer||2013-07-26|Has expired: Depends on Qt 3.x audio/k3bmonkeyaudioplugin||2013-07-26|Has expired: Depends on Qt 3.x audio/kid3||2013-07-26|Has expired: Depends on Qt 3.x audio/kirocker||2013-07-26|Has expired: Depends on Qt 3.x audio/kmp||2013-07-26|Has expired: Depends on Qt 3.x audio/lplayer||2013-07-26|Has expired: Depends on Qt 3.x audio/madman||2013-07-26|Has expired: Depends on Qt 3.x audio/mpeglib_artsplug||2013-07-26|Has expired: Depends on Qt 3.x audio/prokyon3||2013-07-26|Has expired: Depends on Qt 3.x audio/xmms-kde||2013-07-26|Has expired: Depends on Qt 3.x audio/yammi||2013-07-26|Has expired: Depends on Qt 3.x biology/xdrawchem||2013-07-26|Has expired: Depends on Qt 3.x cad/opencascade-tutorial||2013-07-26|Has expired: Depends on Qt 3.x cad/vipec||2013-07-26|Has expired: Depends on Qt 3.x chinese/kde3-i18n-zh_CN||2013-07-26|Has expired: Depends on Qt 3.x chinese/kde3-i18n-zh_TW||2013-07-26|Has expired: Depends on Qt 3.x comms/kallers||2013-07-26|Has expired: Depends on Qt 3.x comms/kmobiletools||2013-07-26|Has expired: Depends on Qt 3.x comms/kpsk||2013-07-26|Has expired: Depends on Qt 3.x comms/ktrack||2013-07-26|Has expired: Depends on Qt 3.x converters/ktextdecode||2013-07-26|Has expired: Depends on Qt 3.x databases/kmysqladmin||2013-07-26|Has expired: Depends on Qt 3.x databases/knoda||2013-07-26|Has expired: Depends on Qt 3.x databases/ksqlanalyzer||2013-07-26|Has expired: Depends on Qt 3.x databases/ksqlshell||2013-07-26|Has expired: Depends on Qt 3.x databases/mysql-navigator||2013-07-26|Has expired: Depends on Qt 3.x databases/qt-mysql-plugin||2013-07-26|Has expired: Depends on Qt 3.x databases/qt-odbc-plugin||2013-07-26|Has expired: Depends on Qt 3.x databases/qt-pgsql-plugin||2013-07-26|Has expired: Depends on Qt 3.x databases/qt-sqlite-plugin||2013-07-26|Has expired: Depends on Qt 3.x deskutils/bookreader||2013-07-26|Has expired: Depends on Qt 3.x deskutils/dragstack||2013-07-26|Has expired: Depends on Qt 3.x deskutils/karamba||2013-07-26|Has expired: Depends on Qt 3.x deskutils/katapult||2013-07-26|Has expired: Depends on Qt 3.x deskutils/kbirthday||2013-07-26|Has expired: Depends on Qt 3.x deskutils/kblticker||2013-07-26|Has expired: Depends on Qt 3.x deskutils/kchm||2013-07-26|Has expired: Depends on Qt 3.x deskutils/kdepim3||2013-07-26|Has expired: Depends on Qt 3.x deskutils/kdissert||2013-07-26|Has expired: Depends on Qt 3.x deskutils/kickpim||2013-07-26|Has expired: Depends on Qt 3.x deskutils/klipoquery||2013-07-26|Has expired: Depends on Qt 3.x deskutils/kluje||2013-07-26|Has expired: Depends on Qt 3.x deskutils/kmatrix3d||2013-07-26|Has expired: Depends on Qt 3.x deskutils/knowit||2013-07-26|Has expired: Depends on Qt 3.x deskutils/kompose||2013-07-26|Has expired: Depends on Qt 3.x deskutils/kooldock||2013-07-26|Has expired: Depends on Qt 3.x deskutils/krefty||2013-07-26|Has expired: Depends on Qt 3.x deskutils/krss||2013-07-26|Has expired: Depends on Qt 3.x deskutils/ksmoothdock||2013-07-26|Has expired: Depends on Qt 3.x deskutils/metabar||2013-07-26|Has expired: Depends on Qt 3.x deskutils/snotes||2013-07-26|Has expired: Depends on Qt 3.x devel/bouml||2013-07-26|Has expired: Depends on Qt 3.x devel/crossvc||2013-07-26|Has expired: Depends on Qt 3.x devel/dbus-qt3||2013-07-26|Has expired: Depends on Qt 3.x devel/esvn||2013-07-26|Has expired: Depends on Qt 3.x devel/kdesdk3||2013-07-26|Has expired: Depends on Qt 3.x devel/kodos||2013-07-26|Has expired: Depends on Qt 3.x devel/kprof||2013-07-26|Has expired: Depends on Qt 3.x devel/kscope||2013-07-26|Has expired: Depends on Qt 3.x devel/pikdev||2013-07-26|Has expired: Depends on Qt 3.x devel/qsa||2013-07-26|Has expired: Depends on Qt 3.x devel/qssl||2013-07-26|Has expired: Depends on Qt 3.x devel/subcommander||2013-07-26|Has expired: Depends on Qt 3.x editors/f4l||2013-07-26|Has expired: Depends on Qt 3.x editors/kate-plugins||2013-07-26|Has expired: Depends on Qt 3.x editors/klat||2013-07-26|Has expired: Depends on Qt 3.x editors/kxmleditor||2013-07-26|Has expired: Depends on Qt 3.x editors/rospell||2013-07-26|Has expired: Depends on Qt 3.x finance/eqonomize-kde3||2013-07-26|Has expired: Depends on Qt 3.x finance/kexchange||2013-07-26|Has expired: Depends on Qt 3.x finance/khacc||2013-07-26|Has expired: Depends on Qt 3.x finance/kmymoney2||2013-07-26|Has expired: Depends on Qt 3.x finance/qtstalker||2013-07-26|Has expired: Depends on Qt 3.x french/kde3-i18n||2013-07-26|Has expired: Depends on Qt 3.x ftp/kasablanca||2013-07-26|Has expired: Depends on Qt 3.x ftp/kbear||2013-07-26|Has expired: Depends on Qt 3.x ftp/kftpgrabber||2013-07-26|Has expired: Depends on Qt 3.x ftp/kpum||2013-07-26|Has expired: Depends on Qt 3.x games/atlantikdesigner||2013-07-26|Has expired: Depends on Qt 3.x games/blackjack||2013-07-26|Has expired: Depends on Qt 3.x games/easysok||2013-07-26|Has expired: Depends on Qt 3.x games/ggz-kde-client||2013-07-26|Has expired: Depends on Qt 3.x games/kamikaze||2013-07-26|Has expired: Depends on Qt 3.x games/kbilliards||2013-07-26|Has expired: Depends on Qt 3.x games/kdegames3||2013-07-26|Has expired: Depends on Qt 3.x games/kfreerings||2013-07-26|Has expired: Depends on Qt 3.x games/kmastermind||2013-07-26|Has expired: Depends on Qt 3.x games/knights||2013-07-26|Has expired: Depends on Qt 3.x games/kpicframer||2013-07-26|Has expired: Depends on Qt 3.x games/kpictorial||2013-07-26|Has expired: Depends on Qt 3.x games/kpuzzle||2013-07-26|Has expired: Depends on Qt 3.x games/ktritoc||2013-07-26|Has expired: Depends on Qt 3.x games/kwappen||2013-07-26|Has expired: Depends on Qt 3.x games/pinedit||2013-07-26|Has expired: Depends on Qt 3.x games/q15||2013-07-26|Has expired: Depends on Qt 3.x games/qnetchess||2013-07-26|Has expired: Depends on Qt 3.x games/spacehulk||2013-07-26|Has expired: Depends on Qt 3.x games/stroq||2013-07-26|Has expired: Depends on Qt 3.x games/taxipilot||2013-07-26|Has expired: Depends on Qt 3.x german/kde3-i18n||2013-07-26|Has expired: Depends on Qt 3.x german/kheisereg||2013-07-26|Has expired: Depends on Qt 3.x german/ksteak||2013-07-26|Has expired: Depends on Qt 3.x graphics/albumshaper||2013-07-26|Has expired: Depends on Qt 3.x graphics/amanith||2013-07-26|Has expired: Depends on Qt 3.x graphics/digikam-doc||2013-07-26|Has expired: Depends on Qt 3.x graphics/divxcalc||2013-07-26|Has expired: Depends on Qt 3.x graphics/ecg2png||2013-07-26|Has expired: Depends on Qt 3.x graphics/flip||2013-07-26|Has expired: Depends on Qt 3.x graphics/fractorama||2013-07-26|Has expired: Depends on Qt 3.x graphics/imgseek||2013-07-26|Has expired: Depends on Qt 3.x graphics/kalbum||2013-07-26|Has expired: Depends on Qt 3.x graphics/kbarcode||2013-07-26|Has expired: Depends on Qt 3.x graphics/kdegraphics3||2013-07-26|Has expired: Depends on Qt 3.x graphics/kipi-plugins||2013-07-26|Has expired: Depends on Qt 3.x graphics/kisomandel||2013-07-26|Has expired: Depends on Qt 3.x graphics/kooka||2013-07-26|Has expired: Depends on Qt 3.x graphics/kradview||2013-07-26|Has expired: Depends on Qt 3.x graphics/kuickshow||2013-07-26|Has expired: Depends on Qt 3.x graphics/landscape||2013-07-26|Has expired: Depends on Qt 3.x graphics/libkexif||2013-07-26|Has expired: Depends on Qt 3.x graphics/libqglviewer||2013-07-26|Has expired: Depends on Qt 3.x graphics/libx3dtk||2013-07-26|Has expired: Depends on Qt 3.x graphics/potracegui||2013-07-26|Has expired: Depends on Qt 3.x graphics/py-amanith||2013-07-26|Has expired: Depends on Qt 3.x graphics/showimg||2013-07-26|Has expired: Depends on Qt 3.x graphics/xenomorph||2013-07-26|Has expired: Depends on Qt 3.x hebrew/kde3-i18n||2013-07-26|Has expired: Depends on Qt 3.x hungarian/kde3-i18n||2013-07-26|Has expired: Depends on Qt 3.x irc/eggcreator||2013-07-26|Has expired: Depends on Qt 3.x irc/kmyirc||2013-07-26|Has expired: Depends on Qt 3.x irc/kwirc||2013-07-26|Has expired: Depends on Qt 3.x japanese/kde3-i18n||2013-07-26|Has expired: Depends on Qt 3.x korean/kde3-i18n||2013-07-26|Has expired: Depends on Qt 3.x lang/gambas||2013-07-26|Has expired: Depends on Qt 3.x lang/klogoturtle||2013-07-26|Has expired: Depends on Qt 3.x mail/kcheckgmail||2013-07-26|Has expired: Depends on Qt 3.x math/fung-calc||2013-07-26|Has expired: Depends on Qt 3.x math/koctave||2013-07-26|Has expired: Depends on Qt 3.x math/kseg||2013-07-26|Has expired: Depends on Qt 3.x math/pgcalc||2013-07-26|Has expired: Depends on Qt 3.x math/qwtplot3d||2013-07-26|Has expired: Depends on Qt 3.x math/rkward||2013-07-26|Has expired: Depends on Qt 3.x math/xgfe||2013-07-26|Has expired: Depends on Qt 3.x misc/gwenview-i18n||2013-07-26|Has expired: Depends on Qt 3.x misc/k3b-i18n||2013-07-26|Has expired: Depends on Qt 3.x misc/kaddressbook-plugins||2013-07-26|Has expired: Depends on Qt 3.x misc/katalog||2013-07-26|Has expired: Depends on Qt 3.x misc/kbfx||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-af||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-az||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-be||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-bg||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-bn||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-br||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-bs||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-ca||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-cs||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-csb||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-cy||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-da||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-el||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-en_GB||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-eo||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-es||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-et||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-eu||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-fa||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-fi||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-fy||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-ga||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-gl||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-hi||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-hr||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-is||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-it||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-kk||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-km||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-lt||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-lv||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-mk||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-mn||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-ms||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-nb||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-nds||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-nl||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-nn||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-pa||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-ro||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-rw||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-se||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-sk||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-sl||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-sr||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-sr_Latn||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-ss||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-sv||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-ta||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-te||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-tg||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-th||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-tr||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-uz||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-ven||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-wa||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-xh||2013-07-26|Has expired: Depends on Qt 3.x misc/kde3-i18n-zu||2013-07-26|Has expired: Depends on Qt 3.x misc/kdeaddons3||2013-07-26|Has expired: Depends on Qt 3.x misc/kdeedu3||2013-07-26|Has expired: Depends on Qt 3.x misc/kdehier||2013-07-26|Has expired: Depends on Qt 3.x misc/kdeutils3||2013-07-26|Has expired: Depends on Qt 3.x misc/kfile-plugins||2013-07-26|Has expired: Depends on Qt 3.x misc/kicker-applets||2013-07-26|Has expired: Depends on Qt 3.x misc/knewsticker-scripts||2013-07-26|Has expired: Depends on Qt 3.x misc/konq-plugins||2013-07-26|Has expired: Depends on Qt 3.x misc/krecipes||2013-07-26|Has expired: Depends on Qt 3.x misc/ksig||2013-07-26|Has expired: Depends on Qt 3.x misc/kwatch||2013-07-26|Has expired: Depends on Qt 3.x misc/renamedlgplugins||2013-07-26|Has expired: Depends on Qt 3.x multimedia/bmp-extra-plugins||2013-07-26|Has expired: Depends on Qt 3.x multimedia/dvdauthorwizard||2013-07-26|Has expired: Depends on Qt 3.x multimedia/grpplaylist||2013-07-26|Has expired: Depends on Qt 3.x multimedia/k9copy||2013-07-26|Has expired: Depends on Qt 3.x multimedia/kdemultimedia3||2013-07-26|Has expired: Depends on Qt 3.x multimedia/kmenc15||2013-07-26|Has expired: Depends on Qt 3.x multimedia/kmplayer||2013-07-26|Has expired: Depends on Qt 3.x multimedia/konverter||2013-07-26|Has expired: Depends on Qt 3.x multimedia/kplayer||2013-07-26|Has expired: Depends on Qt 3.x multimedia/ksubeditor||2013-07-26|Has expired: Depends on Qt 3.x multimedia/mandvd||2013-07-26|Has expired: Depends on Qt 3.x multimedia/noatun-plugins||2013-07-26|Has expired: Depends on Qt 3.x multimedia/qdvdauthor||2013-07-26|Has expired: Depends on Qt 3.x multimedia/subtitlecomposer||2013-07-26|Has expired: Depends on Qt 3.x multimedia/transkode||2013-07-26|Has expired: Depends on Qt 3.x multimedia/xine_artsplugin||2013-07-26|Has expired: Depends on Qt 3.x net/cphone||2013-07-26|Has expired: Depends on Qt 3.x net/kdenetwork3||2013-07-26|Has expired: Depends on Qt 3.x net/kiax||2013-07-26|Has expired: Depends on Qt 3.x net/knemo||2013-07-26|Has expired: Depends on Qt 3.x net/kphone||2013-07-26|Has expired: Depends on Qt 3.x net/krdesktop||2013-07-26|Has expired: Depends on Qt 3.x net/lanbrowsing||2013-07-26|Has expired: Depends on Qt 3.x net/pppload||2013-07-26|Has expired: Depends on Qt 3.x net/smb4k||2013-07-26|Has expired: Depends on Qt 3.x net/twinkle||2013-07-26|Has expired: Depends on Qt 3.x net-im/eva||2013-07-26|Has expired: Depends on Qt 3.x net-im/kmerlin||2013-07-26|Has expired: Depends on Qt 3.x net-im/kmess||2013-07-26|Has expired: Depends on Qt 3.x net-im/konverse||2013-07-26|Has expired: Depends on Qt 3.x net-im/kpopup||2013-07-26|Has expired: Depends on Qt 3.x net-im/sim-im||2013-07-26|Has expired: Depends on Qt 3.x net-im/sim-im-devel||2013-07-26|Has expired: Depends on Qt 3.x net-im/trix||2013-07-26|Has expired: Depends on Qt 3.x net-mgmt/tork||2013-07-26|Has expired: Depends on Qt 3.x net-p2p/kmldonkey||2013-07-26|Has expired: Depends on Qt 3.x net-p2p/ktorrent2||2013-07-26|Has expired: Depends on Qt 3.x net-p2p/qtella||2013-07-26|Has expired: Depends on Qt 3.x net-p2p/qtorrent||2013-07-26|Has expired: Depends on Qt 3.x news/klibido||2013-07-26|Has expired: Depends on Qt 3.x polish/kde3-i18n||2013-07-26|Has expired: Depends on Qt 3.x ports-mgmt/kports||2013-07-26|Has expired: Depends on Qt 3.x ports-mgmt/qtpkg||2013-07-26|Has expired: Depends on Qt 3.x portuguese/kde3-i18n||2013-07-26|Has expired: Depends on Qt 3.x portuguese/kde3-i18n-pt_BR||2013-07-26|Has expired: Depends on Qt 3.x print/cjk-lyx||2013-07-26|Has expired: Depends on Qt 3.x print/kcdlabel||2013-07-26|Has expired: Depends on Qt 3.x print/mapagi||2013-07-26|Has expired: Depends on Qt 3.x russian/kde3-i18n||2013-07-26|Has expired: Depends on Qt 3.x russian/ksocrat||2013-07-26|Has expired: Depends on Qt 3.x science/gsystem||2013-07-26|Has expired: Depends on Qt 3.x science/kmovisto||2013-07-26|Has expired: Depends on Qt 3.x science/kst||2013-07-26|Has expired: Depends on Qt 3.x security/klamav||2013-07-26|Has expired: Depends on Qt 3.x security/kopete-otr||2013-07-26|Has expired: Depends on Qt 3.x security/kovpn||2013-07-26|Has expired: Depends on Qt 3.x security/kssh||2013-07-26|Has expired: Depends on Qt 3.x security/qca-tls||2013-07-26|Has expired: Depends on Qt 3.x security/qtfw||2013-07-26|Has expired: Depends on Qt 3.x sysutils/kcpuload||2013-07-26|Has expired: Depends on Qt 3.x sysutils/kdeadmin3||2013-07-26|Has expired: Depends on Qt 3.x sysutils/keep||2013-07-26|Has expired: Depends on Qt 3.x sysutils/kgtk||2013-07-26|Has expired: Depends on Qt 3.x sysutils/kkbswitch||2013-07-26|Has expired: Depends on Qt 3.x sysutils/kkeyled||2013-07-26|Has expired: Depends on Qt 3.x sysutils/klaptopdaemon||2013-07-26|Has expired: Depends on Qt 3.x sysutils/kleansweep||2013-07-26|Has expired: Depends on Qt 3.x sysutils/klineakconfig||2013-07-26|Has expired: Depends on Qt 3.x sysutils/kmilo||2013-07-26|Has expired: Depends on Qt 3.x sysutils/knutclient||2013-07-26|Has expired: Depends on Qt 3.x sysutils/komparator||2013-07-26|Has expired: Depends on Qt 3.x sysutils/kshutdown||2013-07-26|Has expired: Depends on Qt 3.x sysutils/ksynaptics||2013-07-26|Has expired: Depends on Qt 3.x sysutils/lineak-kdeplugins||2013-07-26|Has expired: Depends on Qt 3.x sysutils/luma||2013-07-26|Has expired: Depends on Qt 3.x sysutils/pwg||2013-07-26|Has expired: Depends on Qt 3.x sysutils/spassgen||2013-07-26|Has expired: Depends on Qt 3.x textproc/kbedic||2013-07-26|Has expired: Depends on Qt 3.x textproc/skim||2013-07-26|Has expired: Depends on Qt 3.x textproc/uim-kde||2013-07-26|Has expired: Depends on Qt 3.x textproc/uim-qt||2013-07-26|Has expired: Depends on Qt 3.x ukrainian/kde3-i18n||2013-07-26|Has expired: Depends on Qt 3.x vietnamese/kde3-i18n||2013-07-26|Has expired: Depends on Qt 3.x www/kdewebdev||2013-07-26|Has expired: Depends on Qt 3.x www/khtml2png||2013-07-26|Has expired: Depends on Qt 3.x x11/kde-lite||2013-07-26|Has expired: Depends on Qt 3.x x11/kde3||2013-07-26|Has expired: Depends on Qt 3.x x11/kdebase3||2013-07-26|Has expired: Depends on Qt 3.x x11/kdelibs3||2013-07-26|Has expired: Depends on Qt 3.x x11/kdelibs3-nocups||2013-07-26|Has expired: Depends on Qt 3.x x11/oooqs2||2013-07-26|Has expired: Depends on Qt 3.x x11/xscreensaver-kde||2013-07-26|Has expired: Depends on Qt 3.x x11-clocks/kdetoys3||2013-07-26|Has expired: Depends on Qt 3.x x11-fm/krusader||2013-07-26|Has expired: Depends on Qt 3.x x11-themes/baghira||2013-07-26|Has expired: Depends on Qt 3.x x11-themes/kde-style-comix||2013-07-26|Has expired: Depends on Qt 3.x x11-themes/kde-style-lipstik||2013-07-26|Has expired: Depends on Qt 3.x x11-themes/kde-style-polyester||2013-07-26|Has expired: Depends on Qt 3.x x11-themes/kde-style-tiblit||2013-07-26|Has expired: Depends on Qt 3.x x11-themes/kde-windeco-activeheart||2013-07-26|Has expired: Depends on Qt 3.x x11-themes/kde-windeco-crystal||2013-07-26|Has expired: Depends on Qt 3.x x11-themes/kde-windeco-knifty||2013-07-26|Has expired: Depends on Qt 3.x x11-themes/kde-windeco-neos||2013-07-26|Has expired: Depends on Qt 3.x x11-themes/kde-windeco-smoothblend||2013-07-26|Has expired: Depends on Qt 3.x x11-themes/kdeartwork3||2013-07-26|Has expired: Depends on Qt 3.x x11-themes/kdmtheme||2013-07-26|Has expired: Depends on Qt 3.x x11-themes/moodin||2013-07-26|Has expired: Depends on Qt 3.x x11-themes/phase||2013-07-26|Has expired: Depends on Qt 3.x x11-themes/polymer||2013-07-26|Has expired: Depends on Qt 3.x x11-themes/qinx||2013-07-26|Has expired: Depends on Qt 3.x x11-themes/qnxstyle||2013-07-26|Has expired: Depends on Qt 3.x x11-themes/qt-bluecurve-theme||2013-07-26|Has expired: Depends on Qt 3.x x11-themes/qtcurve-kde3||2013-07-26|Has expired: Depends on Qt 3.x x11-toolkits/py-qt||2013-07-26|Has expired: Depends on Qt 3.x x11-toolkits/qscintilla||2013-07-26|Has expired: Depends on Qt 3.x x11-toolkits/qt33||2013-07-26|Has expired: No upstream activity since 2008; unmaintained x11-toolkits/qwt4||2013-07-26|Has expired: Depends on Qt 3.x x11-wm/bbconf||2013-07-26|Has expired: Depends on Qt 3.x x11-wm/kompmgr||2013-07-26|Has expired: Depends on Qt 3.x audio/artswrapper||2013-07-27|Depend on the expired audio/arts net/ns2|net/ns|2013-07-29|Duplicate ports merged x11-toolkits/libbonobouimm||2013-07-31|Not supported upstream anymore devel/libbonobomm||2013-07-31|Not supported upstream anymore devel/gio-fam-backend|devel/glib20|2013-07-31|Obsoleted by new functionality in glib20 mail/qmrtg||2013-08-02|Has expired: lacks an upstream source www/mediawiki118||2013-08-02|Has expired: Unmaintained upstream sysutils/googlog||2013-08-02|Has expired: no upstream project www/mod_macro24||2013-08-03|Has expired: part of Apache 2.4.6 and newer games/kaid||2013-08-07|Has expired: Does not fetch lang/q||2013-08-11|Has expired: Q-Lang is no longer supported. See lang/pure instead audio/q-audio||2013-08-11|Has expired: Q-Lang is no longer supported. See lang/pure instead graphics/q-graph||2013-08-11|Has expired: Q-Lang is no longer supported. See lang/pure instead devel/prettygo|devel/go-pretty|2013-08-17|Project was renamed www/moodle22||2013-08-20|Has expired: Unmaintained upstream www/w3m-m17n|www/w3m|2013-08-22|Unified to www/w3m www/w3m-m17n-img|www/w3m-img|2013-08-22|Unified to www/w3m-img security/sfs||2013-08-23|Has expired: Broken on FreeBSD 8 and newer mail/p5-Mail-CClient||2013-08-26|Has expired: Broken for more than 6 months net/slbd||2013-08-26|Has expired: Broken on FreeBSD 8 and newer comms/hso-kmod||2013-08-26|Has expired: Broken on FreeBSD 8 and newer lang/ldc-devel||2013-08-27|Has expired: Broken for more than 6 months www/mod_smooth_streaming||2013-08-27|Has expired: Broken for more than 6 months www/p5-Apache2-Scoreboard||2013-08-27|Has expired: Broken for more than 6 months multimedia/mp4split||2013-08-27|Has expired: Broken for more than 6 months net-mgmt/noc||2013-08-27|Has expired: Broken for more than 6 months sysutils/empower||2013-08-27|Has expired: Broken for more than 6 months emulators/xgngeo||2013-08-27|Has expired: Broken for more than 6 months graphics/geglmm||2013-08-27|Has expired: Broken for more than 6 months sysutils/libumberlog||2013-08-27|Has expired: Broken for more than 6 months net-p2p/nicotine-plus||2013-08-27|Has expired: Broken for more than 6 months palm/barry||2013-08-27|Has expired: Broken for more than 6 months x11-themes/kde-icons-noia-warm||2013-08-27|Has expired: Broken for more than 6 months news/lottanzb||2013-08-27|Has expired: Broken for more than 6 months textproc/xaira||2013-08-27|Has expired: Broken for more than 6 months graphics/f90gl||2013-08-27|Has expired: Broken for more than 6 months multimedia/linux-gspca-kmod||2013-08-27|Has expired: Broken for more than 6 months math/dislin||2013-08-27|Has expired: Broken for more than 6 months irc/smuxi||2013-08-27|Has expired: Broken for more than 6 months java/icedtea6-stubs||2013-08-27|Has expired: Broken for more than 6 months math/octave-forge-es||2013-08-27|Has expired: Broken for more than 6 months math/octave-forge-java||2013-08-27|Has expired: Broken for more than 6 months net/gatekeeper||2013-08-28|Has expired: Vulnerable for than 2 month audio/mp3towav-bundle||2013-08-28|Does not build with recent GNUstep biology/adun||2013-08-28|Does not build with recent GNUstep databases/gdl2||2013-08-28|Does not build with recent GNUstep databases/mylibrary||2013-08-28|Does not build with recent GNUstep deskutils/mywiki||2013-08-28|Does not build with recent GNUstep deskutils/toolbox||2013-08-28|Does not build with recent GNUstep devel/objcunit||2013-08-28|Does not build with recent GNUstep devel/objectivelib||2013-08-28|Does not build with recent GNUstep devel/projectmanager||2013-08-28|Does not build with recent GNUstep editors/codeeditor||2013-08-28|Does not build with recent GNUstep games/gridlock||2013-08-28|Does not build with recent GNUstep irc/talksoup||2013-08-28|Does not build with recent GNUstep math/matharray||2013-08-28|Does not build with recent GNUstep net/netclasses||2013-08-28|Does not build with recent GNUstep sysutils/burn||2013-08-28|Does not build with recent GNUstep www/webserver||2013-08-28|Does not build with recent GNUstep www/webservices||2013-08-28|Does not build with recent GNUstep x11-toolkits/gnustep-art||2013-08-28|Does not build with recent GNUstep x11-toolkits/gnustep-cairo|x11-toolkits/gnustep-back|2013-08-28|Removed deprecated back ends x11-toolkits/gnustep-xdps||2013-08-28|Does not build with recent GNUstep x11-toolkits/gtoolkit||2013-08-28|Does not build with recent GNUstep x11-toolkits/renaissance||2013-08-28|Does not build with recent GNUstep mail/pear-Horde_Imsp|databases/pear-Horde_Imsp|2013-08-28|Duplicate devel/g2c||2013-08-29|Has expired: Not supported upstream anymore devel/bugzilla3|devel/bugzilla42|2013-08-30|EOL: Please update to a supported version german/bugzilla3|german/bugzilla42|2013-08-30|EOL: Please update to a supported version japanese/bugzilla3|japanese/bugzilla42|2013-08-30|EOL: Please update to a supported version russian/bugzilla3|russian/bugzilla42|2013-08-30|EOL: Please update to a supported version net-im/licq-console||2013-08-30|No longer maintained upstream databases/py-migrate|databases/py-sqlalchemy-migrate|2013-09-01|Rename to reflect official project name lang/gdc||2013-09-01|Has expired: Broken for more than 6 months net-im/cli-msn||2013-09-01|Has expired: MSN Messenger service terminated 30 APR 2013 x11-toolkits/wxd||2013-09-01|Has expired: Depends on deprecated lang/gdc security/openvpn22||2013-09-01|Has expired: Please migrate to a newer OpenVPN version devel/dsss||2013-09-01|Has expired: Depends on expired lang/gdc graphics/qcamview||2013-09-01|Has expired: Broken on FreeBSD 8 and newer www/cacheboy15-devel||2013-09-01|Has expired: Broken on FreeBSD 8 and newer graphics/spcaview||2013-09-01|Has expired: Broken on FreeBSD 8 and newer comms/uticom||2013-09-01|Has expired: Broken on FreeBSD 8 and newer net/ipex||2013-09-01|Has expired: Broken on FreeBSD 8 and newer graphics/phpsview||2013-09-01|Has expired: Broken on FreeBSD 8 and newer misc/usbrh||2013-09-01|Has expired: Broken on FreeBSD 8 and newer net/atmsupport||2013-09-01|Has expired: Broken on FreeBSD 8 and newer comms/ib-kmod||2013-09-01|Has expired: Broken on FreeBSD 8 and newer www/helixplugin||2013-09-01|Has expired: Does not work with newer libxul deskutils/chmsee||2013-09-01|Has expired: Does not work with newer libxul www/moonshine||2013-09-01|Has expired: Does not work with newer libxul x11/ggiterm||2013-09-01|Has expired: Unmaintained and broken graphics/libggigcp||2013-09-01|Has expired: Unmaintained graphics/libggimisc||2013-09-01|Has expired: Unmaintained graphics/libggiwmh||2013-09-01|Has expired: Unmaintained devel/libgiigic||2013-09-01|Has expired: Unmaintained games/koth||2013-09-01|Has expired: Unmaintained www/p5-Catalyst-Plugin-Unicode-Encoding||2013-09-04|Has expired: This module now part of core Catalyst distribution databases/phpmyadmin35|databases/phpmyadmin|2013-09-04|Has expired: Has unresolved security problems: http://www.phpmyadmin.net/home_page/security/PMASA-2013-10.php devel/avr-gcc-3||2013-09-04|Maintaining a GCC 3.x for AVR is no longer useful math/libmath++||2013-09-05|Upstream disappeared and distfile is no longer available japanese/dvi2dvi||2013-09-05|Obsolete japanese/texfamily||2013-09-05|Obsolete japanese/texfamily-vfn2a||2013-09-05|Obsolete devel/py-astng|devel/py-astroid|2013-09-06|Project was renamed misc/kde4-l10n-csb||2013-09-10|No longer part of KDE4 misc/kde4-l10n-eo||2013-09-10|No longer part of KDE4 misc/kde4-l10n-fy||2013-09-10|No longer part of KDE4 misc/kde4-l10n-gu||2013-09-10|No longer part of KDE4 misc/kde4-l10n-kn||2013-09-10|No longer part of KDE4 misc/kde4-l10n-mai||2013-09-10|No longer part of KDE4 misc/kde4-l10n-mk||2013-09-10|No longer part of KDE4 misc/kde4-l10n-ml||2013-09-10|No longer part of KDE4 devel/deputy||2013-09-13|Obsolete textproc/liblinebreak|textproc/libunibreak|2013-09-14|Project was superseded by libunibreak sysutils/daemontools53|sysutils/daemontools|2013-09-16|sysutils/daemontools is more recent audio/ices0|audio/ices|2013-09-16|Unsupported version, consider using audio/ices irc/xchat1|irc/xchat|2013-09-16|Unsupported upstream, consider using irc/xchat japanese/xchat|irc/xchat|2013-09-16|Unsupported upstream, consider using irc/xchat www/autoindex|www/autoindex2|2013-09-16|Does not work with any of the supported PHP versions textproc/rotix||2013-09-20|Has expired: no longer maintained upstream devel/ptlib26|devel/ptlib|2013-09-20|Removed old version, update to new version and moved port net/opal3|net/opal|2013-09-20|Removed old version, update to new version and moved port net/ekiga|net-im/ekiga|2013-09-20|Removed old version, update to new version and moved port net/ekiga3|net-im/ekiga|2013-09-20|Removed old version, update to new version and moved port devel/py-elementtree||2013-09-23|ElementTree is a part of standard library since Python 2.5 textproc/fileshuffle||2013-09-23|Has expired: Does not work, use gshuf from sysutils/coreutils instead www/py-Products.kupu||2013-09-23|This port is not required since Plone 4.3 www/py-plone.app.kss||2013-09-23|This port is not required since Plone 4.3 devel/py-archetypes.kss||2013-09-23|This port is not required since Plone 4.3 devel/py-kss-core||2013-09-23|This port is not required since Plone 4.3 x11/libXtrans||2013-09-26|Has expired: Project is obsoleted, use x11/xtrans instead sysutils/libpcbsd||2013-09-26|Obsolete: Use sysutils/pcbsd-utils-qt4 instead sysutils/pbreg||2013-09-26|Obsolete: Use sysutils/pcbsd-utils instead ports-mgmt/pbi-manager||2013-09-26|Obsolete: Use sysutils/pcbsd-utils instead net/pcbsd-netmanager||2013-09-26|Obsolete: Use sysutils/pcbsd-utils-qt4 instead archivers/ruby-bz2||2013-10-01|Has expired: Does not work with Ruby 1.9 sysutils/puppet26|sysutils/puppet27|2013-10-01|Has expired: End of Life from April 2013. Upgrade to 2.7 or 3.x www/varnish2|www/varnish|2013-10-01|Has expired: No update since January 2011. Upgrade to Varnish 3 databases/dbh10|databases/dbh|2013-10-02|Outdated, not depended on, consider using databases/dbh audio/tracker||2013-10-02|No public distfiles available anymore chinese/joe2|chinese/joe|2013-10-02|Consider using chinese/joe sysutils/rdiff-backup10|sysutils/rdiff-backup|2013-10-02|Outdated, consider using a newer version java/jboss2|java/jboss72|2013-10-02|EOL upstream, consider using a newer version ftp/ncftp2|ftp/ncftp3|2013-10-02|Outdated, consider using a newer version irc/keitairc|irc/keitairc2|2013-10-02|Outdated, consider using a newer version java/netbeans55|java/netbeans|2013-10-02|Outdated, consider using a newer version java/netbeans61|java/netbeans|2013-10-02|Outdated, consider using a newer version devel/py-importlib||2013-10-02|Expired: Python 2.6 port will reach it's EoL upstream soon graphics/gkrellkam|graphics/gkrellkam2|2013-10-02|Outdated, consider using a newer version mail/gkrellmmailwatch|mail/gkrellmmailwatch2|2013-10-02|Outdated, consider using a newer version databases/memcached12|databases/memcached|2013-10-02|Unsupported upstream, consider using a newer version www/py-beautifulsoup30||2013-10-03|Outdated, consider using a newer version comms/umcs784||2013-10-03|Outdated, included in base system as umcs(4) graphics/libwpg01|graphics/libwpg|2013-10-04|Outdated, consider using a new version textproc/libwpd08|textproc/libwpd|2013-10-04|Outdated, consider using a new version net-mgmt/nrpe2|net-mgmt/nrpe|2013-10-04|Reflect the real portname cad/gwave||2013-10-05|Depends on guile-gtk which is EOLed x11-toolkits/guile-gtk||2013-10-05|EOLed upstream for very long textproc/gxmlviewer||2013-10-05|Depends on EOLed gnome1 comms/mlan|comms/mlan3|2013-10-05|Project is obsoleted by newer API graphics/gnomeiconedit||2013-10-05|Depends on EOLed gnome1 games/bombermaze||2013-10-05|Depends on EOLed gnome1 games/glife||2013-10-05|Depends on EOLed gnome1 emulators/visualos||2013-10-05|Depends on EOLed gnome1 editors/xmleditor||2013-10-05|Depends on EOLed gnome1 games/gnmm||2013-10-05|Depends on EOLed gnome1 games/gnomermind||2013-10-05|Depends on EOLed gnome1 comms/ghfaxviewer||2013-10-05|Depends on EOLed gnome1 devel/pharmacy||2013-10-05|Depends on EOLed gnome1 emulators/gsnes9x||2013-10-05|Depends on EOLed gnome1 graphics/electriceyes||2013-10-05|Depends on EOLed gnome1 graphics/frontline||2013-10-05|Depends on EOLed gnome1 mail/mmc||2013-10-05|Depends on EOLed gnome1 misc/misterproper||2013-10-05|Depends on EOLed gnome1 multimedia/gsubedit||2013-10-05|Depends on EOLed gnome1 net/gnome-vnc||2013-10-05|Depends on EOLed gnome1 news/grn||2013-10-05|Depends on EOLed gnome1 security/fpm||2013-10-05|Depends on EOLed gnome1 sysutils/xsu||2013-10-05|Depends on EOLed gnome1 security/fwbuilder-devel||2013-10-05|Appears not to be actively developed anymore devel/libglade||2013-10-07|Component of the obsolete gnome1 databases/gnome-db||2013-10-07|Component of the obsolete gnome1 databases/libgda||2013-10-07|Component of the obsolete gnome1 devel/gconf||2013-10-07|Component of the obsolete gnome1 devel/bonobo||2013-10-07|Component of the obsolete gnome1 devel/oaf||2013-10-07|Component of the obsolete gnome1 print/gnome-print||2013-10-07|Component of the obsolete gnome1 mail/mavbiff||2013-10-07|Obsoleted finance/gnofin||2013-10-07|Depends on EOLed gnome1 x11-toolkits/easygtk||2013-10-07|Depends on EOLed gnome1 graphics/gnomecanvas||2013-10-07|Component of the obsolete gnome1 www/p5-HTTP-GHTTP||2013-10-07|Depends on EOLed gnome1 libraries www/libghttp||2013-10-07|Component of the obsolete gnome1 deskutils/gworkspace-clipbook||2013-10-07|Replaced by tabbed shelf in GWorkspace audio/yamt||2013-10-07|Depends on EOLed gnome1 libraries astro/nova||2013-10-07|Development ceased 8 years ago, depends on some gnome1 libraries textproc/libxml++||2013-10-07|Component of the obsolete gnome1 devel/linux-f10-libglade|devel/linux-f10-libglade2|2013-10-07|Unused textproc/linux-f10-libxml|textproc/linux-f10-libxml2|2013-10-07|Unused www/moodle23||2013-10-08|Has expired: Unmaintained upstream sysutils/easypbi||2013-10-08|Obsolete: Use sysutils/pcbsd-utils-qt4 instead devel/valgrind-snapshot|devel/valgrind-devel|2013-10-09|Rename to -devel to follow port naming conventions devel/p5-doxygenfilter|devel/p5-Doxygen-Filter-Perl|2013-10-09|Project has been taken over by new developer and renamed audio/ruby-vorbisfile||2013-10-11|Has expired: Does not work with Ruby 1.9 audio/ruby-xmms||2013-10-11|Has expired: Does not work with Ruby 1.9 databases/ruby-interbase||2013-10-11|Has expired: Does not work with Ruby 1.9 databases/ruby-bdb1||2013-10-11|Has expired: Does not work with Ruby 1.9 devel/ruby-fam||2013-10-11|Has expired: Does not work with Ruby 1.9 devel/ruby-rcov||2013-10-11|Has expired: Does not work with Ruby 1.9 devel/ruby-rudl||2013-10-11|Has expired: Does not work with Ruby 1.9 devel/ruby-gemfinder||2013-10-11|Has expired: Does not work with Ruby 1.9 devel/ruby-sysvipc||2013-10-11|Has expired: Does not work with Ruby 1.9 devel/rubygem-sdl||2013-10-11|Has expired: Does not work with Ruby 1.9 devel/rubygem-ncurses||2013-10-11|Has expired: Does not work with Ruby 1.9 devel/rubygem-parsetree||2013-10-11|Has expired: Does not work with Ruby 1.9 devel/ruby-sexp||2013-10-11|Has expired: Does not work with Ruby 1.9 devel/rubygem-getopt-declare||2013-10-11|Has expired: Does not work with Ruby 1.9 devel/ruby-slang||2013-10-11|Has expired: Does not work with Ruby 1.9 japanese/ruby-slang||2013-10-11|Has expired: Does not work with Ruby 1.9 devel/ruby-gettext||2013-10-11|Has expired: Does not work with Ruby 1.9 devel/ruby-jttui||2013-10-11|Has expired: Does not work with Ruby 1.9 devel/ruby-mmap||2013-10-11|Has expired: Does not work with Ruby 1.9 devel/ruby-racc||2013-10-11|Has expired: Does not work with Ruby 1.9 devel/rubygem-rparsec||2013-10-11|Has expired: Does not work with Ruby 1.9 devel/rubygem-zoom||2013-10-11|Has expired: Does not work with Ruby 1.9 games/ruby-exmars||2013-10-11|Has expired: Does not work with Ruby 1.9 graphics/ruby-pgplot||2013-10-11|Has expired: Does not work with Ruby 1.9 graphics/rubygem-turing||2013-10-11|Has expired: Does not work with Ruby 1.9 japanese/ruby-chasen||2013-10-11|Has expired: Does not work with Ruby 1.9 japanese/ruby-gyokuro||2013-10-11|Has expired: Does not work with Ruby 1.9 japanese/ruby-rdic||2013-10-11|Has expired lang/ruby-mode.el||2013-10-11|Has expired: Does not work with Ruby 1.9 misc/rubygem-ohcount||2013-10-11|Has expired: Does not work with Ruby 1.9 net-im/rubygem-xmpp4r||2013-10-11|Has expired: Does not work with Ruby 1.9 security/ruby-acl||2013-10-11|Has expired: Does not work with Ruby 1.9 textproc/ruby-xslt||2013-10-11|Has expired: Does not work with Ruby 1.9 textproc/ruby-erbscan||2013-10-11|Has expired: Does not work with Ruby 1.9 textproc/ruby-mwdom||2013-10-11|Has expired: Does not work with Ruby 1.9 textproc/ruby-xmlscan-old||2013-10-11|Has expired: Does not work with Ruby 1.9 textproc/rubygem-formosa||2013-10-11|Has expired: Does not work with Ruby 1.9 textproc/rubygem-htmltools||2013-10-11|Has expired: Does not work with Ruby 1.9 www/ruby-cruisecontrolrb||2013-10-11|Has expired: Does not work with Ruby 1.9 www/rubygem-rubyfulsoup||2013-10-11|Has expired: Does not work with Ruby 1.9 x11/ruby-gtktrayicon||2013-10-11|Has expired: Does not work with Ruby 1.9 net/ngrep-lib||2013-10-11|Obsoleted www/node04||2013-10-11|Has expired: Unsupported upstream, not compatible with current www/node06||2013-10-11|Has expired: Unsupported upstream, not compatible with current math/matrices||2013-10-12|Has expired: Unmaintained upstream games/nethack33-gnome|games/nethack33|2013-10-13|Has expired: Uses deprecated gnome 1.x libraries games/nethack34-gnome|games/nethack34|2013-10-13|Has expired: Uses deprecated gnome 1.x libraries emulators/linux-ePSXe||2013-10-13|Removed, uses Linux GTK1 libraries emulators/linux-peops-spu||2013-10-13|Removed, uses Linux GTK1 libraries math/linux-relview||2013-10-13|Removed, uses Linux GTK1 libraries science/ovt||2013-10-14|Depends on the EOLed vtk4 math/vtk-data||2013-10-14|Deprecated consider using vtk5 math/vtk-examples||2013-10-14|Deprecated consider using vtk5 math/vtk-headers||2013-10-14|Deprecated consider using vtk5 math/vtk-java||2013-10-14|Deprecated consider using vtk5 math/vtk-python||2013-10-14|Deprecated consider using vtk5 math/vtk-tcl||2013-10-14|Deprecated consider using vtk5 science/mayavi||2013-10-14|Depends on the EOLed vtk4 www/httpgrabber||2013-10-14|Depended on net/ngrep-lib security/stem|security/py-stem|2013-10-14|This is a Python library sysutils/gupsc||2013-10-15|Depends on the obsolete gnome1 net/diradmin||2013-10-15|Depends on the obsolete gnome1 devel/hypersrc||2013-10-15|Depends on the obsolete gnome1 x11-themes/gnome-look||2013-10-15|Component of the obsolete gnome1 x11-themes/thinice||2013-10-15|Component of the obsolete gnome1 x11-themes/gtk-engines||2013-10-15|Component of the obsolete gnome1 x11-themes/gtk-engines-collection||2013-10-15|Component of the obsolete gnome1 devel/getxml||2013-10-15|Depends on EOLed libxml1 textproc/xls2xml||2013-10-15|Depends on EOLed libxml1 textproc/cole||2013-10-15|Upstream has disappeared www/rubygem-staticmatic||2013-10-15|Has expired: No longer maintained upstream www/ruby-nora||2013-10-15|Has expired: Does not work with Ruby 1.9 www/aswiki||2013-10-15|Removed textproc/ruby-amrita||2013-10-15|Has expired: Does not work with Ruby 1.9 security/flowtag||2013-10-15|Has expired: Does not work with Ruby 1.9 lang/ruby-lua4||2013-10-15|Has expired: Does not work with Ruby 1.9 dns/dnsdoctor||2013-10-15|Has expired: Does not work with Ruby 1.9 devel/py-psyco||2013-10-15|Has expired: only builds with lang/python26 x11-toolkits/ruby-tk||2013-10-15|Has expired: Does not work with Ruby 1.9 emulators/dolphin-emu-devel|emulators/dolphin-emu|2013-10-16|Has reached stable quality audio/akode||2013-10-17|Removed: Dependency of KDE 3.x audio/akode-plugins-ffmpeg||2013-10-17|Removed: Dependency of KDE 3.x audio/akode-plugins-jack||2013-10-17|Removed: Dependency of KDE 3.x audio/akode-plugins-mpc||2013-10-17|Removed: Dependency of KDE 3.x audio/akode-plugins-mpeg||2013-10-17|Removed: Dependency of KDE 3.x audio/akode-plugins-oss||2013-10-17|Removed: Dependency of KDE 3.x audio/akode-plugins-pulseaudio||2013-10-17|Removed: Dependency of KDE 3.x audio/akode-plugins-resampler||2013-10-17|Removed: Dependency of KDE 3.x audio/akode-plugins-xiph||2013-10-17|Removed: Dependency of KDE 3.x german/bugzilla|german/bugzilla40|2013-10-17|Reflect PORTNAME japanese/bugzilla|japanese/bugzilla40|2013-10-17|Reflect PORTNAME russian/bugzilla|russian/bugzilla40|2013-10-17|Reflect PORTNAME x11/silo||2013-10-18|Has expired: Upstream has disappeared devel/pear-PHPUnit|devel/pear-PHPUnit3|2013-10-18|Removed, EOLed upstream devel/pear-PHPUnit2|devel/pear-PHPUnit3|2013-10-18|Removed, EOLed upstream multimedia/ffmpeg2|multimedia/ffmpeg|2013-10-19|Use multimedia/ffmpeg instead mail/qmailadmin-devel|mail/qmailadmin|2013-10-19|Use mail/qmailadmin instead korean/php_doc||2013-10-19|Manual in this language was removed graphics/linux-panorama-tools||2013-10-21|Depends on EOLed linux-f10-png10 graphics/linux-f10-png10||2013-10-21|Removed, EOLed upstream net/p5-SOAP-Lite-060|net/p5-SOAP-Lite|2013-10-21|Obsoleted devel/rubygem-ruby-debug-base||2013-10-21|Has expired: Does not work with Ruby 1.9 devel/rubygem-linecache||2013-10-21|Has expired: Does not work with Ruby 1.9 devel/rubygem-rascut||2013-10-21|Has expired: Does not work with Ruby 1.9 devel/rubygem-ruby-debug-ide||2013-10-21|Has expired: Does not work with Ruby 1.9 devel/rubygem-ruby-debug||2013-10-21|Has expired: Does not work with Ruby 1.9 japanese/gorua||2013-10-21|Has expired: Does not work with Ruby 1.9 x11-toolkits/ruby-gtk||2013-10-21|Has expired: Does not work with Ruby 1.9 astro/boinc-setiathome-enhanced|astro/boinc-setiathome-v7|2013-10-21|Removed: Project is switching, use astro/boinc-setiathome-v7 instead; broken on 10.0 multimedia/ffmpeg-devel|multimedia/ffmpeg|2013-10-21|Use multimedia/ffmpeg instead lang/ruby18|lang/ruby19|2013-10-22|Has expired: Please use lang/ruby19 www/rubygem-mongrel_cluster||2013-10-22|Has expired: Does not work with Ruby 1.9 www/rubygem-mongrel||2013-10-22|Removed www/rubygem-rails-app-installer||2013-10-22|Has expired: Does not work with Ruby 1.9 www/typo||2013-10-22|Has expired: Does not work with Ruby 1.9 graphics/ruby-opengl||2013-10-25|Has expired: Does not work with Ruby 1.9 multimedia/ffmpeg1|multimedia/ffmpeg|2013-10-27|Use multimedia/ffmpeg instead devel/rubygem-yajl-ruby077||2013-10-29|Removed lang/lua4||2013-10-31|EOLed upstream lang/tolua4||2013-10-31|EOLed upstream net-im/amsn||2013-10-31|Has expired: Primary MSN Messenger service terminated 30 APR 2013 net-im/jabber-pymsn||2013-10-31|Has expired: Primary MSN Messenger service terminated 30 APR 2013 net-im/msn-proxy||2013-10-31|Has expired: Primary MSN Messenger service terminated 30 APR 2013 net-im/p5-Net-MSN||2013-10-31|Has expired: Primary MSN Messenger service terminated 30 APR 2013 net-im/p5-POE-Component-Client-MSN||2013-10-31|Has expired: Primary MSN Messenger service terminated 30 APR 2013 net-im/pidgin-msn-pecan||2013-10-31|Has expired: Primary MSN Messenger service terminated 30 APR 2013 net-im/py-msnp||2013-10-31|Has expired: Primary MSN Messenger service terminated 30 APR 2013 net-im/pymsn||2013-10-31|Has expired: Primary MSN Messenger service terminated 30 APR 2013 net-im/tmsnc||2013-10-31|Has expired: Primary MSN Messenger service terminated 30 APR 2013 mail/squirrelmail-postfixadmin-plugin|mail/postfixadmin|2013-11-01|Has expired: Now distributed with postfixadmin lang/dragonegg46||2013-11-03|Has expired: Upgrade to dragonegg46-33 or dragonegg47-33 sysutils/mktool||2013-11-03|Has expired databases/ruby-memcache||2013-11-03|Has expired: Development has been abandoned upstream deskutils/blogtk||2013-11-03|Has expired: This is dead upstream and is no longer being maintained devel/ruby-io-reactor||2013-11-03|Has expired: Does not work with Ruby 1.9 textproc/jakarta-poi|textproc/apache-poi|2013-11-04|Replaced with apache-poi net-im/qutim||2013-11-05|Has expired: Old version, a new one needs to be ported from scratch textproc/gtkdiff||2013-11-05|Has expired: Gnome1 EOLed by upstream for a while net-p2p/libtorrent-rasterbar-16|net-p2p/libtorrent-rasterbar|2013-11-06|Moved to net-p2p/libtorrent-rasterbar since it's a stable version net-p2p/libtorrent-rasterbar-16-python|net-p2p/libtorrent-rasterbar-python|2013-11-06|Moved to net-p2p/libtorrent-rasterbar-python since it's a stable version devel/ORBit||2013-11-07|Has expired: EOLed upstream for very long x11/gnome-libs||2013-11-07|Has expired: EOLed upstream for very long textproc/stardict2||2013-11-07|Has expired: Newer version available in ports: textproc/stardict3 devel/pure-stlvec|devel/pure-stllib|2013-11-07|Removed: Use devel/pure-stllib instead textproc/lexxia||2013-11-07|Removed no public distfile available anymore textproc/docproj-nojadetex||2013-11-07|Removed textproc/p5-XML-Hadler-HTMLWriter|textproc/p5-XML-Handler-HTMLWriter|2013-11-07|Removed games/frozenbubble|games/frozen-bubble|2013-11-08|Renamed to match upstream naming biology/dotter|biology/seqtools|2013-11-10|Replaced with biology/seqtools games/nil||2013-11-11|Removed: long unmaintained, fails to build games/windstille||2013-11-12|Has expired: Unplayable, development ceased games/intensityengine||2013-11-12|Has expired: Unplayable, main server down, development ceased games/tmw|games/manaplus|2013-11-12|Replaced with games/manaplus graphics/mesagl||2013-11-14|Old unmaintained version. Use graphics/libosmesa instead editors/xxe||2013-11-15|Has expired: XXE becomes unfetchable every 3-4 months as distfile is replaced with new version. This high-maintenance port requires a maintainer to avoid removal editors/xml2rfc-xxe||2013-11-15|Has expired: Depends on editors/xxe, which is due to be removed due to lack of maintainer devel/perltidy|devel/p5-Perl-Tidy|2013-11-15|Renamed to match upstream naming net/p5-Script-isAperlScript|devel/p5-Script-isAperlScript|2013-11-15|Duplicate math/vtk|math/vtk5|2013-11-17|Removed, EOLed net-im/decibel||2013-11-17|Has expired: Deprecated and unsupported upstream for many years, not used by anything databases/postgresql-libpq++||2013-11-17|Has expired: Not maintained upstream for 10+ years audio/gqmpeg-devel||2013-11-17|Removed, no active development for more than 8 years graphics/gqview-devel||2013-11-17|Removed, no active development for more than 8 years textproc/stardict2-dictd_mova|textproc/stardict-dictd_mova|2013-11-17|Renamed textproc/stardict2-quick|textproc/stardict-quick|2013-11-17|Renamed security/ksecrets||2013-11-17|Defunct x11-toolkits/libgnomeuimm|x11-toolkits/libgnomeuimm26|2013-11-18|Older version; has no consumers in the ports tree devel/libglademm|devel/libglademm24|2013-11-18|Older version; has no consumers in the ports tree graphics/libgnomecanvasmm|graphics/libgnomecanvasmm26|2013-11-18|Older version; has no consumers in the ports tree x11/libgnomemm|x11/libgnomemm26|2013-11-18|Older version; has no consumers in the ports tree devel/gconfmm|devel/gconfmm26|2013-11-18|Older version; has no consumers in the ports tree sysutils/dircomp||2013-11-18|Removed: unmaintained and depends on expired devel/libXGP sysutils/iextract||2013-11-18|Removed: unmaintained and depends on expired devel/libYGP devel/libXGP||2013-11-18|Has expired: Broken for more than 6 months deskutils/google-gadgets||2013-11-18|Has expired: Broken for more than 6 months palm/synce-trayicon||2013-11-18|Has expired: Broken for more than 6 months security/linux-pam-docs||2013-11-18|Has expired: Broken for more than 6 months net-p2p/mooseekd||2013-11-18|Has expired: Broken for more than 6 months textproc/p5-Lucene||2013-11-18|Has expired: Broken for more than 6 months net-mgmt/zenpack-dellmonitor||2013-11-18|Has expired: Broken for more than 6 months x11-wm/fbpager||2013-11-18|Has expired: Broken for more than 6 months net/hf6to4||2013-11-18|Has expired: Broken for more than 6 months x11-themes/kde-icons-exquisite||2013-11-18|Has expired: Broken for more than 6 months x11-themes/kde-icons-marbles-translucent||2013-11-18|Has expired: Broken for more than 6 months security/dissembler||2013-11-18|Has expired: Broken for more than 6 months, upstream disappeared net-mgmt/zenpack-apachemonitor||2013-11-18|Has expired: Broken for more than 6 months textproc/rst.el||2013-11-18|Has expired: Broken for more than 6 months net-mgmt/zenpack-ntpmonitor||2013-11-18|Has expired: Broken for more than 6 months x11-themes/kde-icons-steel||2013-11-18|Has expired: Broken for more than 6 months databases/drizzle||2013-11-18|Has expired: Broken for more than 6 months devel/p5-File-Lock||2013-11-18|Has expired: Broken for more than 6 months devel/valide||2013-11-18|Has expired: Broken for more than 6 months databases/gomysql||2013-11-18|Has expired: Broken for more than 6 months databases/p5-DBZ_File||2013-11-18|Has expired: Broken for more than 6 months devel/monodevelop-vala||2013-11-18|Has expired: Broken for more than 6 months devel/gonzui||2013-11-18|Has expired: Broken for more than 6 months devel/monodevelop-java||2013-11-18|Has expired: Broken for more than 6 months lang/objc||2013-11-18|Has expired: Broken for more than 6 months devel/klee||2013-11-18|Has expired: Broken for more than 6 months devel/simulavr||2013-11-18|Has expired: Broken for more than 6 months japanese/mobileimap||2013-11-18|Has expired: Broken for more than 6 months devel/libYGP||2013-11-18|Has expired: Broken for more than 6 months devel/monodevelop-python||2013-11-18|Has expired: Broken for more than 6 months devel/lua50-app||2013-11-18|Removed, lua50 is EOLed devel/lua50-dfui||2013-11-18|Removed, lua50 is EOLed devel/lua50-filename||2013-11-18|Removed, lua50 is EOLed devel/lua50-gettext||2013-11-18|Removed, lua50 is EOLed devel/lua50-posix||2013-11-18|Removed, lua50 is EOLed devel/lua50-pty||2013-11-18|Removed, lua50 is EOLed lang/tolua++50||2013-11-18|Removed, lua50 is EOLed lang/tolua50||2013-11-18|Removed, lua50 is EOLed net/lua50-luasocket||2013-11-18|Removed, lua50 is EOLed devel/lua50-compat51||2013-11-18|Removed, lua50 is EOLed lang/lua50|lang/lua|2013-11-18|Removed, lua50 is EOLed security/squidclamav|www/squidclamav|2013-11-18|Has expired: Obsolete and broken with clang, use www/squidclamav instead devel/rubygem-ripper||2013-11-20|Removed: it is only for Ruby 1.8 which is removed already editors/mode-info||2013-11-20|Has expired: Misbuilding since 2004, not maintained since 2008 devel/netbsd-pkgsrc-mk-files||2013-11-20|Has expired: Imported for devel/mk-configure but no longer required net/ptpd|net/ptpd2|2013-11-20|Protocol and software no longer supported audio/gstreamer1-plugins-celt||2013-11-20|Removed, audio/gstreamer1-plugins-opus can be used as replacement math/p5-MatrixReal|math/p5-Math-MatrixReal|2013-11-22|Rename to match upstream naming lang/gcc42|lang/gcc|2013-11-23|Superseded by GCC 4.6 or later devel/p5-IO||2013-11-23|Removed: newer versions are included in all supported Perl releases www/mod_wsgi|www/mod_wsgi2|2013-11-24|Rename to match version net/ftelnetd||2013-11-25|Has expired: Unfetchable due to parked MASTER_SITES games/BillardGL||2013-11-25|Has expired: Unplayable, development ceased sysutils/rsyslog6-pgsql||2013-11-25|Has expired: Use sysutils/rsyslog7 sysutils/rsyslog6-relp||2013-11-25|Has expired: Use sysutils/rsyslog7 sysutils/rsyslog6-gnutls||2013-11-25|Has expired: Use sysutils/rsyslog7 sysutils/rsyslog6-rfc3195||2013-11-25|Has expired: Use sysutils/rsyslog7 sysutils/rsyslog6-gssapi||2013-11-25|Has expired: Use sysutils/rsyslog7 sysutils/rsyslog6||2013-11-25|Has expired: Use sysutils/rsyslog7 sysutils/rsyslog6-snmp||2013-11-25|Has expired: Use sysutils/rsyslog7 sysutils/rsyslog6-mysql||2013-11-25|Has expired: Use sysutils/rsyslog7 sysutils/rsyslog6-dbi||2013-11-25|Has expired: Use sysutils/rsyslog7 www/trac-gitplugin||2013-11-25|Removed: this plugin has been included in the Trac 1.0 distribution audio/mpc|audio/musicpc|2013-11-26|Renamed to avoid conflict with math/mpc deskutils/q4wine|emulators/q4wine|2013-11-26|Move to better category devel/p5-MooseX-ChainedAccessors||2013-11-27|Has expired: Marked as deprecated upstream devel/py-distribute|devel/py-setuptools|2013-11-27|Replaced with setuptools devel/zmq-devel|net/libzmq3|2013-11-28|Rename according to upstream and move to more suitable category devel/czmq|net/czmq|2013-11-29|Move to a more suitable category and with other libzmq ports lang/ruby-reference||2013-11-29|Removed: does not contain up-to-date ruby reference, upstream has disappeared audio/gnump3d||2013-11-30|Has expired: Development has been abandoned upstream audio/rubygem-ogginfo|audio/rubygem-ruby-ogginfo|2013-11-30|Rename to match upstream naming x11-fm/xnc||2013-12-01|Has expired: Latest release from 2005, upstream disappeared, does not build audio/liteamp||2013-12-01|Has expired: Dead upstream since 2004, does not build with clang net-im/tapioca-qt||2013-12-01|Has expired: Unmaintained upstream since 2007, not used by anything net-im/telepathy-qt|net-im/telepathy-qt4|2013-12-01|Has expired: Unmaintained upstream since 2007, use net-im/telepathy-qt4 x11-toolkits/linux-f10-gtk||2013-12-01|Has expired: GTK1 is deprecated net-im/linux-ymessenger||2013-12-01|Has expired: Depends on deprecated Linux GTK1 emulators/linux-pete-mesagpu||2013-12-01|Has expired: Depends on deprecated Linux GTK1 emulators/linux-pete-xgl2gpu||2013-12-01|Has expired: Depends on deprecated Linux GTK1 emulators/linux-peops-softgpu||2013-12-01|Has expired: Depends on deprecated Linux GTK1 finance/eqonomize-kde4||2013-12-01|Has expired: No upstream releases since 2008, does not build on FreeBSD 10 and 11 comms/uhso-kmod||2013-12-01|Has expired: included in base system on all supported releases deskutils/ecru||2013-12-01|Has expired: No longer maintained upstream editors/gphpedit||2013-12-01|Has expired: No longer maintained upstream irc/inspircd12|irc/inspircd|2013-12-01|Has expired: No upstream support; known vulnerable. Please use irc/inspircd graphics/py-clutter||2013-12-01|Has expired: Broken for more than 6 months graphics/py-clutter-gtk||2013-12-01|Has expired: depends on expired graphics/py-clutter devel/zmq|net/libzmq2|2013-12-05|Rename according to upstream and move to more suitable category devel/rubygem-ruby-statsd|devel/rubygem-statsd|2013-12-05|Rename to match upstream naming x11-themes/lila-xfwm4||2013-12-05|Has expired: Upstream development dead science/omnetpp||2013-12-05|Has expired: depends on expired textproc/libxml textproc/libxml||2013-12-05|Has expired: No release since 2002, no support from upstream deskutils/taskjuggler|deskutils/rubygem-taskjuggler|2013-12-05|Rename to match our rubygem- port naming www/clickheat||2013-12-07|Has expired: No more activity since 2011 security/rarcrack||2013-12-08|Has expired: Not active since several years java/subversion-java|java/java-subversion|2013-12-08|Rename to reflect subversion child port naming scheme games/flare|games/flare-game|2013-12-10|Flare port was split into engine and game counterparts, as upstream did security/opieprint||2013-12-15|Has expired: No more active upstream security/bubblegum||2013-12-15|Has expired: No more active upstream security/snortsms||2013-12-15|Has expired: Not active since several years sysutils/hammerhead||2013-12-15|Has expired: Development no more active net-p2p/libtorrent-rasterbar-15-python||2013-12-15|Has expired: Unusable, development ceased graphics/openexr_ctl||2013-12-15|Has expired: Now distributed with ampasCTL-1.5 net-p2p/libtorrent-rasterbar-15||2013-12-16|Has expired: Unusable, development ceased x11-fonts/ppantsfonts||2013-12-20|Has expired: Broken for more than 6 months x11-toolkits/gtksourceview-sharp||2013-12-20|Has expired: Depends on expired devel/mono-tools devel/mono-tools||2013-12-20|Has expired: Broken for more than 6 months textproc/p5-XML-SAXDriver-Sablotron||2013-12-20|Has expired: Depends on expired textproc/p5-XML-Sablotron textproc/p5-XML-Sablotron||2013-12-20|Has expired: Broken for more than 6 months net/freeswitch-core||2013-12-20|Has expired: Broken for more than 6 months misc/freeswitch-pizzademo||2013-12-20|Has expired: Depends on expired net/freeswitch-core misc/freeswitch-scripts||2013-12-20|Has expired: Depends on expired net/freeswitch-core www/p5-HTML-Webmake||2013-12-20|Has expired: Depends on expired textproc/p5-XML-Sablotron games/blue|games/bluemoon|2013-12-21|Rename to match upstream naming devel/ruby-cvs||2013-12-22|Has expired: Broken for more than 6 months devel/hs-reactive||2013-12-22|Has expired: Broken for more than 6 months databases/rubygem-delayed_job_data_mapper||2013-12-22|Has expired: Broken for more than 6 months graphics/xmagv||2013-12-22|Has expired: Broken for more than 6 months lang/slib-gauche||2013-12-22|Has expired: Broken for more than 6 months graphics/f-spot||2013-12-22|Has expired: Broken for more than 6 months sysutils/linux-megamgr||2013-12-22|Has expired: Broken for more than 6 months games/linux-savage-samuraiwars||2013-12-22|Has expired: Broken for more than 6 months devel/hs-DeepArrow||2013-12-22|Has expired: Broken for more than 6 months converters/py-svglib||2013-12-22|Has expired: Broken for more than 6 months converters/p5-Unicode-Lite||2013-12-22|Has expired: Broken for more than 6 months mail/squirrelmail-calendar_sql_backend-plugin||2013-12-22|Has expired: Broken for more than 6 months games/xkobo||2013-12-22|Has expired: Broken for more than 6 months games/quake3-rq3||2013-12-22|Has expired: Broken for more than 6 months math/fbm||2013-12-22|Has expired: No new release since 2004, new supported upstream deskutils/libopensync-plugin-python-devel||2013-12-22|Has expired: Broken for more than 6 months deskutils/libopensync-plugin-synce-devel||2013-12-22|Removed, unmaintained, depends on deskutils/libopensync-plugin-python-devel net-im/libmsn||2013-12-22|Has expired: Primary MSN Messenger service terminated 30 APR 2013 lang/clang||2013-12-22|Has expired: Migrate to lang/clang32 or newer math/freemat-mpi||2013-12-23|Obsolete since FreeMat 3.0 devel/py-pmock||2013-12-27|Does not work with python 2.6 and beyond devel/ncurses-devel|devel/ncurses|2013-12-28|Regular ncurses ports is more recent databases/mird||2013-12-28|Has expired: No longer maintained upstream security/dazuko||2013-12-31|Has expired: Currently, the project has not an active development and maintainer mail/p5-Mail-SPF-Query||2013-12-31|Has expired: Use mail/p5-Mail-SPF instead x11-fonts/etlfonts||2013-12-31|Has expired: master site gone net/gateway6||2013-12-31|Has expired: Unsupported upstream, consider using net/gogoc misc/bibletime-devel|misc/bibletime|2013-12-31|Has expired: use misc/bibletime multimedia/linux-ov511-kmod||2013-12-31|Removed: broken and only for FreeBSD 6.x and 7.x net-mgmt/unifi|net-mgmt/unifi3|2014-01-01|Rename to unifi3; unifi2 is coming to ports tree as well net/pypvm||2014-01-01|Has expired: Dead upstream and suspected that there are no users of port www/mawstats||2014-01-01|Has expired: Upstream development dead, use www/[j]awstats instead devel/p5-Dialog|devel/p5-UI-Dialog|2014-01-01|Has expired textproc/referrercop||2014-01-01|Has expired: distfile unfetchable www/notftp||2014-01-01|Has expired: distfile unfetchable www/mod_lisp2||2014-01-01|Has expired: distfile unfetchable irc/xchat-gnome||2014-01-02|Has expired: broken and no release since 2009 sysutils/rubygem-rubyimpi|sysutils/rubygem-rubyipmi|2014-01-02|Renamed www/codeigniter17|www/codeigniter|2014-01-04|Unsupported upstream, consider using newer version net-im/xfce4-messenger-plugin||2014-01-04|Has expired: Deprecated and no update for 7 years multimedia/xfce4-media|multimedia/xfce4-parole|2014-01-04|Has expired: Upstream development dead, use multimedia/xfce4-parole instead devel/py-gevent-zeromq|devel/py-pyzmq|2014-01-06|Has expired: devel/py-pyzmq has gevent support built in net/erlyvideo||2014-01-06|Has expired: Development of erlyvideo is abandoned upstream. Use flussonic instead devel/qt4-declarative|x11-toolkits/qt4-declarative|2014-01-06|Moved to unify with Qt 5 devel/qt4-qtestlib|devel/qt4-testlib|2014-01-06|Renamed to unify with Qt 5 x11/qt4-opengl|graphics/qt4-opengl|2014-01-06|Moved to unify with Qt 5 graphics/wings-devel|graphics/wings|2014-01-07|Obsoleted by the main port devel/llvm|devel/llvm32|2014-01-08|Has expired: Migrate to devel/llvm32 or newer devel/reflex|textproc/reflex|2014-01-08|Duplicate devel/hs-hat||2014-01-09|Upstream has vanished devel/hs-hdoc||2014-01-09|Removed devel/hs-idoc||2014-01-09|Removed x11-toolkits/hs-frantk||2014-01-09|Outdated and bitrotted devel/lua-filename||2014-01-10|Abandonware archivers/xz||2014-01-12|Included in base system on all supported releases lang/python26|lang/python27|2014-01-13|Python 2.6 is now end-of-life, please migrate to lang/python27 sysutils/lavaps||2014-01-14|Abandonware, segfaults www/mod_authnz_external|www/mod_authnz_external22|2014-01-14|Port was renamed to reflect the supported Apache version games/deng|games/doomsday|2014-01-16|Renamed to follow upstream naming misc/sword17|misc/sword|2014-01-16|Has expired: use misc/sword databases/postgis||2014-01-17|Has expired: EOLed upstream textproc/redland-bindings-python||2014-01-19|Use textproc/redland-bindings directly instead emulators/seabios-devel||2014-01-19|Has expired: Outdated, no longer needed, broken on 10+ cad/salome||2014-01-24|Has expired: depends on expired cad/salome-kernel cad/salome-netgenplugin||2014-01-24|Has expired: depends on expired cad/salome-kernel cad/salome-jobmanager||2014-01-24|Has expired: depends on expired cad/salome-kernel cad/salome-visu||2014-01-24|Has expired: depends on expired cad/salome-kernel cad/salome-kernel||2014-01-24|Has expired: does not configure cad/salome-multipr||2014-01-24|Has expired: depends on expired cad/salome-kernel cad/salome-smesh||2014-01-24|Has expired: depends on expired cad/salome-kernel cad/salome-gui||2014-01-24|Has expired: depends on expired cad/salome-kernel cad/salome-yacs||2014-01-24|Has expired: depends on expired cad/salome-kernel cad/salome-med||2014-01-24|Has expired: depends on expired cad/salome-kernel cad/salome-light||2014-01-24|Has expired: depends on expired cad/salome-kernel cad/salome-randomizer||2014-01-24|Has expired: depends on expired cad/salome-kernel cad/salome-sierpinsky||2014-01-24|Has expired: depends on expired cad/salome-kernel cad/salome-geom||2014-01-24|Has expired: depends on expired cad/salome-kernel devel/combat||2014-01-24|Has expired: depends on expired devel/mico net-mgmt/nagios-devel|net-mgmt/nagios|2014-01-25|Master site gone, outdated math/octave-forge-image-acquisition||2014-01-27|Depends on multimedia/libv4l which no longer has necessary headers lang/racket-textual|lang/racket-minimal|2014-01-27|Renamed upstream mail/pop-before-smtp||2014-01-27|Removed graphics/glfw-devel||2014-01-28|Removed devel/py-ua-parser|devel/py-ua_parser|2014-01-28|Reflect module name french/ispell|french/aspell|2014-01-29|Removed, consider using aspell instead german/ispell|german/aspell|2014-01-29|Removed, consider using aspell instead german/ispell-alt|german/aspell|2014-01-29|Removed, consider using aspell instead german/ispell-neu|german/aspell|2014-01-29|Removed, consider using aspell instead hungarian/ispell|hungarian/aspell|2014-01-29|Removed, consider using aspell instead polish/ispell|polish/aspell|2014-01-29|Removed, consider using aspell instead portuguese/ispell-pt_BR|portuguese/aspell-pt_BR|2014-01-29|Removed, consider using aspell instead russian/rus-ispell|russian/aspell|2014-01-29|Removed, consider using aspell instead textproc/british-ispell|textproc/en-aspell|2014-01-29|Removed, consider using aspell instead textproc/es-ispell|textproc/es-aspell|2014-01-29|Removed, consider using aspell instead textproc/ispell|textproc/aspell-ispell|2014-01-29|Removed, consider using aspell instead textproc/it-ispell|textproc/it-aspell|2014-01-29|Removed, consider using aspell instead textproc/nl-ispell|textproc/nl-aspell|2014-01-29|Removed, consider using aspell instead textproc/sk-ispell|textproc/sk-aspell|2014-01-29|Removed, consider using aspell instead ukrainian/ispell|ukrainian/aspell|2014-01-29|Removed, consider using aspell instead databases/p5-DBD-mysql52|databases/p5-DBD-mysql|2014-01-29|Depends on expired MySQL version audio/gsi||2014-01-30|Removed, abandonware multimedia/kino||2014-01-31|Has expired: Not developed since 2009, declared dead 05.08.2013 on there website x11-drivers/xf86-video-imstt||2014-01-31|Has expired: Broken, unsupported and unmaintained upstream x11-drivers/xf86-video-via||2014-01-31|Has expired: Broken, not supported upstream multimedia/vdr-plugin-softdevice||2014-01-31|Has expired: Broken after ffmpeg update (not sure it ever worked) sysutils/mbmon|sysutils/xmbmon|2014-01-31|Has expired: Use sysutils/xmbmon instead. This port will be removed soon dns/bind96||2014-01-31|Has expired: EOL in January 2014, consider moving to Bind 9.8 or 9.9 x11-drivers/xf86-video-nouveau||2014-01-31|Has expired: missing kernel support; use official NVidia driver cad/mars||2014-01-31|Removed, abandonware, no releases in the past 20 years polish/gimp-help||2014-02-01|Removed, excluded from gimp-help-2.8.1 release multimedia/xbmc-pvr||2014-02-03|Has expired: multimedia/xbmc and multimedia/xbmc-addon-pvr are newer misc/libmcal||2014-02-03|Has expired: No more used and development discontinued textproc/py-4suite||2014-02-03|Has expired: only builds with Python up to version 2.4 multimedia/xbmc-addon-xvdr||2014-02-03|Has expired: Depends on expired multimedia/xbmc-pvr deskutils/gmcal||2014-02-03|Has expired: Depends on expired misc/libmcal deskutils/mcal||2014-02-03|Has expired: Depends on expired misc/libmcal sysutils/relpath||2014-02-03|Has expired: unfetchable distfiles sysutils/decomment||2014-02-03|Has expired: unfetchable distfiles multimedia/openmovieeditor||2014-02-03|Has expired: segfaults, upstream development ceased french/gfaim||2014-02-04|Abandonware math/matlab-R2012a-installer|math/matlab-installer|2014-02-04|Now it can handle any Matlab version games/deal||2014-02-05|Abandonware japanese/grep|textproc/gnugrep|2014-02-06|Official version properly support multi-byte, consider using textproc/gnugrep www/comclear||2014-02-06|Netscape doesn't exist anymore editors/openoffice-3|editors/openoffice-4|2014-02-07|OpenOffice 3 is not supported anymore mail/muttzilla||2014-02-07|Netscape doesn't exist anymore www/nscache||2014-02-07|Netscape doesn't exist anymore audio/bebocd||2014-02-08|Has expired: abandoned by mainstream www/runsomebrowser|www/webbrowser|2014-02-09|Name changed irc/trickyirc||2014-02-10|Abandonware, segfaults, no releases in 15 years databases/p5-DBD-mysql55|databases/p5-DBD-mysql|2014-02-12|If you need a different default MYSQL version, use DEFAULT_VERSIONS databases/p5-DBD-mysql56|databases/p5-DBD-mysql|2014-02-12|If you need a different default MYSQL version, use DEFAULT_VERSIONS textproc/p5-ElasticSearch|textproc/p5-ElasticSearch-legacy|2014-02-12|This version is deprecated in favor of the official client x11-fonts/cosmic-sans-neue-mono|x11-fonts/fantasque-sans-mono|2014-02-13|Renamed upstream mail/zmailer||2014-02-13|Broken since at least last August lang/gcc34|lang/gcc|2014-02-13|Superseded by GCC 4.6 or later lang/perl5.12|lang/perl5.16|2014-02-14|Has expired: no longer under development, use lang/perl5.18 or lang/perl5.16 devel/adabooch-doc-html||2014-02-15|Obsolete; adabooch now has DOCS option x11-toolkits/sakura|x11/sakura|2014-02-16|Moved to a better category misc/kde4-shared-mime-info||2014-02-18|Removed: this port is not needed anymore deskutils/kdepim44-runtime||2014-02-18|Removed: conflicts with new kdepimlibs deskutils/kdepim44||2014-02-18|Removed: depends on deskutils/kdepim44-runtime misc/kde-xdg-env||2014-02-18|Removed, remnant of KDE 3 lang/g95||2014-02-18|Removed, uses an old version of GCC which can't be built anymore games/py-ski|games/ski|2014-02-18|Rename to match upstream naming textproc/docbook-241|textproc/docbook-sgml|2014-02-19|Merged into textproc/docbook-sgml textproc/docbook-300|textproc/docbook-sgml|2014-02-19|Merged into textproc/docbook-sgml textproc/docbook-310|textproc/docbook-sgml|2014-02-19|Merged into textproc/docbook-sgml textproc/docbook-400|textproc/docbook-sgml|2014-02-19|Merged into textproc/docbook-sgml textproc/docbook-410|textproc/docbook-sgml|2014-02-19|Merged into textproc/docbook-sgml textproc/docbook-420|textproc/docbook-sgml|2014-02-19|Merged into textproc/docbook-sgml textproc/docbook-430|textproc/docbook-sgml|2014-02-19|Merged into textproc/docbook-sgml textproc/docbook-440|textproc/docbook-sgml|2014-02-19|Merged into textproc/docbook-sgml textproc/docbook-450|textproc/docbook-sgml|2014-02-19|Merged into textproc/docbook-sgml textproc/docbook-xml-430|textproc/docbook-xml|2014-02-19|Merged into textproc/docbook-xml textproc/docbook-xml-440|textproc/docbook-xml|2014-02-19|Merged into textproc/docbook-xml textproc/docbook-xml-450|textproc/docbook-xml|2014-02-19|Merged into textproc/docbook-xml textproc/docbook-500|textproc/docbook-xml|2014-02-19|Merged into textproc/docbook-xml textproc/docbook-sk|textproc/docbook-xml|2014-02-19|Merged into textproc/docbook-xml emulators/ski||2014-02-19|Removed, does not exist on HP's site anymore sysutils/liblogging|devel/liblogging|2014-02-20|Already exists as devel/liblogging devel/bzr-grep||2014-02-24|Has expired: Broken for more than 4 months multimedia/youtube-viewer||2014-02-24|Has expired: Development ceased for 2.5 branch, conflict with gtk-youtube-viewer x11-toolkits/flvw||2014-02-24|Abandonware textproc/p5-XML-Xerces||2014-02-24|Depends on a non supported version of xerces-c x11-toolkits/fl_editor||2014-02-24|Abandonware, buggy rendering, and not stage friendly x11-toolkits/gtkunique|x11-toolkits/unique|2014-02-24|Superseded by x11-toolkits/unique japanese/ruby-man||2014-02-25|Has expired: Documents EOLd version of Ruby and unmaintained lang/ruby-programmingruby||2014-02-25|Has expired: Documents EOLd version of Ruby and unmaintained lang/ruby-man||2014-02-25|Has expired: Documents EOLd version of Ruby and unmaintained lang/ruby-usersguide||2014-02-25|Has expired: Documents EOLd version of Ruby and unmaintained graphics/wmgrabimage||2014-02-25|Has expired: No more public distfiles www/trac-hierwiki||2014-02-27|Has expired: Runtime is broken, doesn't support Trac>0.11 www/openvrml||2014-02-27|Has expired: Broken for more than 6 months science/peekabot||2014-02-27|Has expired: Broken for more than 6 months misc/xbiso||2014-02-27|Has expired: Broken for more than 6 months net/hornetq||2014-02-27|Has expired: Broken for more than 6 months sysutils/slmon||2014-02-27|Has expired: Broken for more than 6 months www/trac-revtree||2014-02-27|Has expired: Broken for more than 6 months security/crack||2014-02-27|Has expired: Broken for more than 6 months sysutils/graphicboot||2014-02-27|Has expired: Broken for more than 6 months, upstream disappeared sysutils/ckl||2014-02-27|Has expired: Broken for more than 6 months japanese/trac||2014-02-27|Has expired: Broken for more than 6 months lang/opa||2014-02-27|Has expired: Broken for more than 6 months sysutils/mmore||2014-02-27|Has expired: Broken for more than 6 months www/trac-announcer||2014-02-27|Has expired: Broken for more than 6 months lang/expect-devel||2014-02-28|No longer relevant. Use lang/expect instead x11-drivers/xf86-video-radeonhd|x11-drivers/xf86-video-ati|2014-02-28|Has expired: Abandoned upstream since 2010 net/asterisk10||2014-02-28|Has expired: asterisk 10 reached EOL on 2013-12-15 textproc/py-lucene||2014-02-28|Has expired: Broken for more than 6 months lang/gcc44|lang/gcc|2014-02-28|Superseded by GCC 4.6 or later archivers/php52-bz2||2014-03-01|PHP 5.2 is end-of-life archivers/php52-zip||2014-03-01|PHP 5.2 is end-of-life archivers/php52-zlib||2014-03-01|PHP 5.2 is end-of-life converters/php52-iconv||2014-03-01|PHP 5.2 is end-of-life converters/php52-mbstring||2014-03-01|PHP 5.2 is end-of-life converters/php52-recode||2014-03-01|PHP 5.2 is end-of-life databases/php52-dba||2014-03-01|PHP 5.2 is end-of-life databases/php52-dbase||2014-03-01|PHP 5.2 is end-of-life databases/php52-interbase||2014-03-01|PHP 5.2 is end-of-life databases/php52-mssql||2014-03-01|PHP 5.2 is end-of-life databases/php52-mysql||2014-03-01|PHP 5.2 is end-of-life databases/php52-mysqli||2014-03-01|PHP 5.2 is end-of-life databases/php52-oci8||2014-03-01|PHP 5.2 is end-of-life databases/php52-odbc||2014-03-01|PHP 5.2 is end-of-life databases/php52-pdo||2014-03-01|PHP 5.2 is end-of-life databases/php52-pdo_dblib||2014-03-01|PHP 5.2 is end-of-life databases/php52-pdo_firebird||2014-03-01|PHP 5.2 is end-of-life databases/php52-pdo_mysql||2014-03-01|PHP 5.2 is end-of-life databases/php52-pdo_oci||2014-03-01|PHP 5.2 is end-of-life databases/php52-pdo_odbc||2014-03-01|PHP 5.2 is end-of-life databases/php52-pdo_pgsql||2014-03-01|PHP 5.2 is end-of-life databases/php52-pdo_sqlite||2014-03-01|PHP 5.2 is end-of-life databases/php52-pgsql||2014-03-01|PHP 5.2 is end-of-life databases/php52-sqlite||2014-03-01|PHP 5.2 is end-of-life databases/php52-sybase_ct||2014-03-01|PHP 5.2 is end-of-life devel/php52-gettext||2014-03-01|PHP 5.2 is end-of-life devel/php52-json||2014-03-01|PHP 5.2 is end-of-life devel/php52-ncurses||2014-03-01|PHP 5.2 is end-of-life devel/php52-pcntl||2014-03-01|PHP 5.2 is end-of-life devel/php52-pcre||2014-03-01|PHP 5.2 is end-of-life devel/php52-readline||2014-03-01|PHP 5.2 is end-of-life devel/php52-shmop||2014-03-01|PHP 5.2 is end-of-life devel/php52-spl||2014-03-01|PHP 5.2 is end-of-life devel/php52-sysvmsg||2014-03-01|PHP 5.2 is end-of-life devel/php52-sysvsem||2014-03-01|PHP 5.2 is end-of-life devel/php52-sysvshm||2014-03-01|PHP 5.2 is end-of-life devel/php52-tokenizer||2014-03-01|PHP 5.2 is end-of-life ftp/php52-curl||2014-03-01|PHP 5.2 is end-of-life ftp/php52-ftp||2014-03-01|PHP 5.2 is end-of-life graphics/php52-exif||2014-03-01|PHP 5.2 is end-of-life graphics/php52-gd||2014-03-01|PHP 5.2 is end-of-life graphics/php52-ming||2014-03-01|PHP 5.2 is end-of-life lang/php52||2014-03-01|PHP 5.2 is end-of-life lang/php52-extensions||2014-03-01|PHP 5.2 is end-of-life mail/php52-imap||2014-03-01|PHP 5.2 is end-of-life math/php52-bcmath||2014-03-01|PHP 5.2 is end-of-life math/php52-gmp||2014-03-01|PHP 5.2 is end-of-life misc/php52-calendar||2014-03-01|PHP 5.2 is end-of-life net/php52-ldap||2014-03-01|PHP 5.2 is end-of-life net/php52-soap||2014-03-01|PHP 5.2 is end-of-life net/php52-sockets||2014-03-01|PHP 5.2 is end-of-life net/php52-xmlrpc||2014-03-01|PHP 5.2 is end-of-life net-mgmt/php52-snmp||2014-03-01|PHP 5.2 is end-of-life security/php52-filter||2014-03-01|PHP 5.2 is end-of-life security/php52-hash||2014-03-01|PHP 5.2 is end-of-life security/php52-mcrypt||2014-03-01|PHP 5.2 is end-of-life security/php52-mhash||2014-03-01|PHP 5.2 is end-of-life security/php52-openssl||2014-03-01|PHP 5.2 is end-of-life sysutils/pecl-fileinfo||2014-03-01|PHP 5.2 is end-of-life sysutils/php52-posix||2014-03-01|PHP 5.2 is end-of-life textproc/php52-ctype||2014-03-01|PHP 5.2 is end-of-life textproc/php52-dom||2014-03-01|PHP 5.2 is end-of-life textproc/php52-pspell||2014-03-01|PHP 5.2 is end-of-life textproc/php52-simplexml||2014-03-01|PHP 5.2 is end-of-life textproc/php52-wddx||2014-03-01|PHP 5.2 is end-of-life textproc/php52-xml||2014-03-01|PHP 5.2 is end-of-life textproc/php52-xmlreader||2014-03-01|PHP 5.2 is end-of-life textproc/php52-xmlwriter||2014-03-01|PHP 5.2 is end-of-life textproc/php52-xsl||2014-03-01|PHP 5.2 is end-of-life www/php52-session||2014-03-01|PHP 5.2 is end-of-life www/php52-tidy||2014-03-01|PHP 5.2 is end-of-life lang/clang31||2014-03-01|Has expired: No remaining dependencies devel/llvm31||2014-03-01|Has expired: No remaining dependencies (except clang31) shells/bash-devel|shells/bash|2014-03-03|Maintainer reset, main port now properly maintained shells/bash-static-devel|shells/bash-static|2014-03-03|Maintainer reset, main port now properly maintained x11/mgapdesk||2014-03-03|Has expired: Needs an old (pre-7.2) XFree86/X.Org header file to build security/kwallet|security/kwalletmanager|2014-03-04|Renamed to match upstream naming databases/mysqlard||2014-03-06|Has expired: Abandonware print/acrobatviewer||2014-03-06|Has expired: Abandoned, outdated (no updates since 1999) multimedia/castpodder||2014-03-06|Has expired: Depends on deprecated multimedia/beep-media-player audio/bmp-modplug|multimedia/audacious|2014-03-06|Has expired: Abandonware, please consider using multimedia/audacious instead audio/bmp-fc|multimedia/audacious|2014-03-06|Has expired: Abandonware, please consider using multimedia/audacious instead graphics/bmp-rootvis|multimedia/audacious|2014-03-06|Has expired: Abandonware, please consider using multimedia/audacious instead deskutils/bmp-docklet|multimedia/audacious|2014-03-06|Has expired: Abandonware, please consider using multimedia/audacious instead audio/bmp-festalon|multimedia/audacious|2014-03-06|Has expired: Abandonware, please consider using multimedia/audacious instead audio/bmp-faad|multimedia/audacious|2014-03-06|Has expired: Abandonware, please consider using multimedia/audacious instead audio/bmp-flac|multimedia/audacious|2014-03-06|Has expired: Abandonware, please consider using multimedia/audacious instead audio/bmp-wma|multimedia/audacious|2014-03-06|Has expired: Abandonware, please consider using multimedia/audacious instead multimedia/py-pybmp|multimedia/audacious|2014-03-06|Has expired: Abandonware, please consider using multimedia/audacious instead audio/bmp-mac|multimedia/audacious|2014-03-06|Has expired: Abandonware, please consider using multimedia/audacious instead audio/bmp-songchange|multimedia/audacious|2014-03-06|Has expired: Abandonware, please consider using multimedia/audacious instead audio/bmp-htmlplaylist|multimedia/audacious|2014-03-06|Has expired: Abandonware, please consider using multimedia/audacious instead audio/bmp-crossfade|multimedia/audacious|2014-03-06|Has expired: Abandonware, please consider using multimedia/audacious instead audio/bmp-scrobbler|multimedia/audacious|2014-03-06|Has expired: Abandonware, please consider using multimedia/audacious instead shells/wapsh||2014-03-06|Broken and abandonware shells/zoidberg||2014-03-06|Broken and abandonware x11-toolkits/py31-tkinter|x11-toolkits/py-tkinter|2014-03-06|Has expired: Depends on expiring lang/python31 misc/logsurfer+|misc/logsurfer|2014-03-07|Renamed upstream net-p2p/i2p|security/i2p|2014-03-07|Category change deskutils/phprojekt||2014-03-08|Has expired: No more public distfiles deskutils/libopensync-plugin-synce-legacy||2014-03-08|Has expired: No more public distfiles dns/skadns||2014-03-08|Has expired: No more public distfiles sysutils/gkrellmwho2||2014-03-08|Has expired: No more public distfiles audio/xmms-musepack||2014-03-08|Has expired: No more public distfiles devel/cvsstat||2014-03-08|Has expired: No more public distfiles graphics/enfle||2014-03-08|Has expired: No more public distfiles audio/oggsplit||2014-03-08|Has expired: No more public distfiles devel/picasm||2014-03-08|Has expired: No more public distfiles databases/mysql-udf-preg||2014-03-08|Has expired: No more public distfiles net/mars_nwe||2014-03-08|Has expired: No more public distfiles audio/fmio||2014-03-08|Has expired: No more public distfiles audio/libmtp|multimedia/libmtp|2014-03-09|Moved from audio to multimedia mail/p5-Mail-SpamAssassin-Alt|mail/p5-Mail-SpamAssassin|2014-03-09|Retired; please use mail/p5-Mail-SpamAssassin mail/fetchyahoo||2014-03-10|Has expired: Yahoo classic mail interface is discontinued, so this port is permanently broken audio/p5-Audio-Beep||2014-03-10|Has expired: Depends on expiring audio/beep multimedia/beep-media-player|multimedia/audacious|2014-03-10|Has expired: Abandonware, please consider using multimedia/audacious instead graphics/jumpgis-postgis||2014-03-10|Has expired: Depends on expiring graphics/jumpgis graphics/jumpgis||2014-03-10|Has expired: No more public distfiles mail/xfmail||2014-03-10|Has expired: No more public distfiles net/freenx||2014-03-10|Has expired: Depends on expiring net/nxserver deskutils/libopensync-plugin-synce||2014-03-10|Has expired: No more public distfiles irc/irchat-pj-xemacs21-mule||2014-03-10|Has expired: No more public distfiles irc/pure-xemacs21-mule||2014-03-10|Has expired: No more public distfiles lang/dice||2014-03-10|Has expired: No more public distfiles irc/dcc||2014-03-10|Has expired: No more public distfiles sysutils/backupme||2014-03-10|Has expired: No more public distfiles net/freeswitch-curl-devel||2014-03-10|Has expired: No more public distfiles misc/freeswitch-pizzademo-devel||2014-03-10|Has expired: No more public distfiles emulators/cygne-sdl||2014-03-10|Has expired: No more public distfiles mail/newmail||2014-03-10|Has expired: No more public distfiles x11-toolkits/xscoop||2014-03-10|Has expired: No more public distfiles security/didentd||2014-03-10|Has expired: No more public distfiles net/freeswitch-sbc-devel||2014-03-10|Has expired: No more public distfiles multimedia/gxanim||2014-03-10|Has expired: No more public distfiles www/nd||2014-03-10|Has expired: No more public distfiles lang/fbbi||2014-03-10|Has expired: No more public distfiles textproc/csv2xml||2014-03-10|Has expired: No more public distfiles www/trac-calendar||2014-03-10|Has expired: No more public distfiles misc/stan||2014-03-10|Has expired: No more public distfiles japanese/gtkicq||2014-03-10|Has expired: No more public distfiles net/nc6||2014-03-10|Has expired: No more public distfiles net/jpcap||2014-03-10|Has expired: No more public distfiles games/quake-extras||2014-03-10|Has expired: No more public distfiles net/asfrecorder||2014-03-10|Has expired: No more public distfiles sysutils/pyrenamer||2014-03-10|Has expired: No more public distfiles palm/synce-sync-engine||2014-03-10|Has expired: No more public distfiles www/linux-mplayer-plugin||2014-03-10|Has expired: No more public distfiles net-mgmt/airport||2014-03-10|Has expired: No more public distfiles textproc/manued.el||2014-03-10|Has expired: No more public distfiles sysutils/jailer||2014-03-10|Has expired: No more public distfiles sysutils/blimitd||2014-03-10|Has expired: No more public distfiles print/abntex||2014-03-10|Has expired: No more public distfiles sysutils/monkeytail||2014-03-10|Has expired: No more public distfiles dns/dns_mre||2014-03-10|Has expired: No more public distfiles japanese/libjcode||2014-03-10|Has expired: No more public distfiles net/freeswitch-vanilla-devel||2014-03-10|Has expired: No more public distfiles sysutils/hdup||2014-03-10|Has expired: No more public distfiles x11/settitle||2014-03-10|Has expired: No more public distfiles sysutils/anteater||2014-03-10|Has expired: No more public distfiles www/trac-pendingticket||2014-03-10|Has expired: No more public distfiles www/admuser||2014-03-10|Has expired: No more public distfiles x11-themes/gnome-icons-snowish||2014-03-10|Has expired: No more public distfiles www/metacafe_dl||2014-03-10|Has expired: No more public distfiles irc/irchat-pj-emacs21||2014-03-10|Has expired: No more public distfiles www/horde3-wicked||2014-03-10|Has expired: No more public distfiles java/drexelsnmp||2014-03-10|Has expired: No more public distfiles mail/sigit||2014-03-10|Has expired: No more public distfiles misc/freeswitch-scripts-devel||2014-03-10|Has expired: No more public distfiles www/vtiger-customerportal||2014-03-10|Has expired: No more public distfiles irc/pure-emacs21||2014-03-10|Has expired: No more public distfiles www/extsm||2014-03-10|Has expired: No more public distfiles misc/cwish||2014-03-10|Has expired: No more public distfiles www/phpscheduleit||2014-03-10|Has expired: No more public distfiles palm/synce-serial||2014-03-10|Has expired: No more public distfiles palm/synce-vdccm||2014-03-10|Has expired: No more public distfiles net/freeswitch-insideout-devel||2014-03-10|Has expired: No more public distfiles sysutils/fusefs-fur||2014-03-10|Has expired: No more public distfiles mail/clamfilter||2014-03-10|Has expired: No more public distfiles textproc/cost||2014-03-10|Has expired: No more public distfiles palm/synce-gvfs||2014-03-10|Has expired: No more public distfiles net/nxserver||2014-03-10|Has expired: No more public distfiles sysutils/throttle||2014-03-10|Has expired: No more public distfiles japanese/aterm||2014-03-10|Has expired: No more public distfiles mail/teapop||2014-03-10|Has expired: No more public distfiles www/eldav.el||2014-03-10|Has expired: No more public distfiles graphics/gsnapshot||2014-03-10|Has expired: No more public distfiles japanese/zangband||2014-03-10|Has expired: No more public distfiles audio/xmms-wma||2014-03-10|Has expired: No more public distfiles misc/projectionlib||2014-03-10|Has expired: No more public distfiles multimedia/smile||2014-03-10|Has expired: No more public distfiles x11-fm/dfm||2014-03-10|Has expired: No more public distfiles security/xyssl|security/polarssl|2014-03-10|Has expired: No more public distfiles japanese/p5-Mail-SpamAssassin|japanese/spamassassin|2014-03-10|Moved to japanese/spamassassin mail/p5-Mail-SpamAssassin|mail/spamassassin|2014-03-10|Moved to mail/spamassassin databases/pear-MDB2_Driver_sqlite||2014-03-12|Unmaintained upstream net/pppd23||2014-03-14|Has expired: Depends on PPPDISC net/ipa_ip6fw||2014-03-14|Has expired: Depends on IPv6 ipfw firewall palm/synce-hal||2014-03-14|Has expired: Requires pppd net/pppoa||2014-03-14|Has expired: Broken on FreeBSD 8.x and later since June 2009 multimedia/linux-huludesktop||2014-03-14|Removed multimedia/linux_v4l2wrapper-kmod||2014-03-16|Has expired: Included now in all supported FreeBSD versions devel/sgl||2014-03-16|Has expired: never progressed beyond incomplete graduate project; library was never properly built and not worth fixing palm/jpilot-db||2014-03-16|Has expired databases/ludia||2014-03-18|Has expired: Broken since June 2013 lang/schemetoc||2014-03-18|Has expired: Broken since July 2013 sysutils/py-salt-cloud|sysutils/py-salt|2014-03-19|Removed:py-salt-cloud is now part of py-salt devel/py-pyzmq|net/py-pyzmq|2014-03-22|Move to a more suitable category with other ZeroMQ ports audio/p5-Xmms|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead audio/xmms-a52dec|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead audio/xmms-audiofile|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead audio/xmms-cdread|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead audio/xmms-crossfade|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead audio/xmms-crystality|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead audio/xmms-defx|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead audio/xmms-efxmms|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead audio/xmms-eq|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead audio/xmms-fc|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead audio/xmms-fxt|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead audio/xmms-infopipe|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead audio/xmms-jack|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead audio/xmms-liveice|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead audio/xmms-mac|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead audio/xmms-mad|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead audio/xmms-midi|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead audio/xmms-modplug|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead audio/xmms-mp3cue|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead audio/xmms-osssurround|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead audio/xmms-quix3dn|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead audio/xmms-sid|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead audio/xmms-sndfile|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead audio/xmms-tfmx|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead chinese/xmms|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead graphics/xmms-blursk|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead graphics/xmms-dancingparticles|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead graphics/xmms-dflowers|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead graphics/xmms-dscope|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead graphics/xmms-dspectogram|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead graphics/xmms-dspectral|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead graphics/xmms-finespectrum|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead graphics/xmms-fishmatic|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead graphics/xmms-gdancer|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead graphics/xmms-iris|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead graphics/xmms-jess|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead graphics/xmms-nebulus|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead graphics/xmms-paranormal|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead graphics/xmms-scivi|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead graphics/xmms-vumeter|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead graphics/xmms-waterfall|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead multimedia/gxmms|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead multimedia/xmms-status-plugin|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead russian/xmms|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead x11-themes/xmms-bluecurve-theme|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead x11-themes/xmms-eq-skins|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead x11-themes/xmms-vumeter-skins|multimedia/audacious|2014-03-23|Has expired: Abandonware, please consider using multimedia/audacious instead mail/mahogany||2014-03-24|Broken with all support compilers x11-toolkits/py-wxPython26|x11-toolkits/py-wxPython28|2014-03-24|wxPython26 is EOLed x11-toolkits/py-wxPython26-common|x11-toolkits/py-wxPython28-common|2014-03-24|wxPython26 is EOLed x11-toolkits/py-wxPython26-unicode|x11-toolkits/py-wxPython28-unicode|2014-03-24|wxPython26 is EOLed x11-toolkits/wxgtk26|x11-toolkits/wxgtk28|2014-03-24|wxGTK 2.6 is EOLed x11-toolkits/wxgtk26-common|x11-toolkits/wxgtk28-common|2014-03-24|wxGTK 2.6 is EOLed x11-toolkits/wxgtk26-contrib|x11-toolkits/wxgtk28-contrib|2014-03-24|wxGTK 2.6 is EOLed x11-toolkits/wxgtk26-contrib-common|x11-toolkits/wxgtk28-contrib-common|2014-03-24|wxGTK 2.6 is EOLed x11-toolkits/wxgtk26-docs||2014-03-24|wxGTK 2.6 is EOLed x11-toolkits/wxgtk26-unicode|x11-toolkits/wxgtk28-unicode|2014-03-24|wxGTK 2.6 is EOLed x11-toolkits/wxgtk26-unicode-contrib|x11-toolkits/wxgtk28-unicode-contrib|2014-03-24|wxGTK 2.6 is EOLed x11-toolkits/wxgtk29|x11-toolkits/wxgtk30|2014-03-24|wxGTK 2.9 was a development version superseded by the 3.0 release accessibility/ruby-atk||2014-03-24|Has expired: Use rubygem-atk instead devel/ruby-gio2||2014-03-24|Has expired: Use rubygem-gio2 instead devel/ruby-glib2||2014-03-24|Has expired: Use rubygem-glib2 instead graphics/ruby-cairo||2014-03-24|Has expired: Use rubygem-cairo instead graphics/ruby-gdk_pixbuf2||2014-03-24|Has expired: Use rubygem-gdk_pixbuf2 instead graphics/ruby-rsvg2||2014-03-24|Has expired: Use rubygem-rsvg2 instead x11-toolkits/ruby-goocanvas||2014-03-24|Has expired: No longer included upstream x11-toolkits/ruby-gstreamer||2014-03-24|Has expired: Use rubygem-gstreamer instead x11-toolkits/ruby-gtk2||2014-03-24|Has expired: Use rubygem-gtk2 instead x11-toolkits/ruby-gtksourceview2||2014-03-24|Has expired: Use rubygem-gtksourceview2 instead x11-toolkits/ruby-pango||2014-03-24|Has expired: Use rubygem-pango instead x11-toolkits/ruby-poppler||2014-03-24|Has expired: Use rubygem-poppler instead x11-toolkits/ruby-vte||2014-03-24|Has expired: Use rubygem-vte instead x11/ruby-gnome2||2014-03-24|Has expired: Use rubygem-gnome2 instead deskutils/lxshortcut||2014-03-24|Has expired: Now distributed with x11/libfm-1.2.0 databases/p5-Ima-DBI-Contextual||2014-03-24|Has expired: deprecated by upstream databases/p5-Class-DBI-Lite||2014-03-24|Has expired: deprecated by upstream net/AquaGatekeeper||2014-03-24|Has expired: Binary port of software abandoned by the vendor games/xflame||2014-03-24|Has expired: No more public distfiles games/p5-Algorithm-Pair-Best|games/p5-Algorithm-Pair-Best2|2014-03-24|Has expired: Use games/p5-Algorithm-Pair-Best2 instead x11-wm/hackedbox||2014-03-24|Has expired: Abandonware emulators/hfs|sysutils/hfsutils|2014-03-24|Has expired: No upstream, no public distfiles; consider using 'sysutils/hfsutils' games/fuhquake||2014-03-24|Has expired: Upstream disappeared; no more public distfiles; unmaintained games/xarchon||2014-03-25|Has expired: Unusable, development ceased, not works with stage lang/libstdc++_stldoc_3.4.0||2014-03-25|STL 3.4 is not supported for long games/linux-warsow||2014-03-26|Has expired: outdated, broken audio/pysol-sound-server|games/pysolfc|2014-03-28|Has expired: Broken, abandonware, use pysolfc games/pysol-cardsets|games/pysolfc|2014-03-28|Has expired: Broken, abandonware, use pysolfc games/pysol-music|games/pysolfc|2014-03-28|Has expired: Broken, abandonware, use pysolfc games/pysol|games/pysolfc|2014-03-28|Has expired: Broken, abandonware, use pysolfc devel/ros_tutorials||2014-03-28|Has expired: Depends on expiring devel/ros_comm math/ros-geometry||2014-03-28|Has expired: Depends on expiring devel/ros_comm devel/ros-nxt||2014-03-28|Has expired: Depends on expiring devel/ros_comm devel/ros-rx||2014-03-28|Has expired: Depends on expiring devel/ros_comm devel/R-cran-vcd||2014-03-28|Has expired: New port without proper maintainer devel/ros-documentation||2014-03-28|Has expired: Depends on expiring devel/ros_comm devel/ros-common_msgs||2014-03-28|Has expired: Depends on expiring devel/ros_comm devel/ros_comm||2014-03-28|Has expired: Broken for more than 6 months devel/cross-gdb||2014-03-28|Has expired: No more public distfiles, unstaged x11-wm/fvwm2-i18n|x11-wm/fvwm2|2014-03-28|Does not differ from main fvwm2 port games/linux-spheresofchaos-demo||2014-03-28|Has expired: No more public distfiles chinese/php5-cconv|chinese/php-cconv|2014-03-30|Rename to php- emulators/gxmame||2014-03-30|Has expired: Depends on deprecated emulators/xmame emulators/pyxmame||2014-03-30|Has expired: Depends on deprecated emulators/xmame emulators/xmess||2014-03-30|Has expired: No more public distfiles benchmarks/xdd||2014-03-30|Has expired: No more public distfiles chinese/srecite||2014-03-30|Has expired: No more public distfiles games/hlstats||2014-03-30|Has expired: No more public distfiles audio/teamspeak_server||2014-03-30|Has expired: No more public distfiles games/utserver||2014-03-30|Has expired: No more public distfiles databases/p5-hp200lx-db||2014-03-30|Has expired: No more public distfiles audio/teamspeak_client||2014-03-30|Has expired: No more public distfiles german/vtiger||2014-03-30|Has expired: Depends on expiring www/vtiger www/gallery||2014-03-30|Has expired: No more public distfiles www/vtiger||2014-03-30|Has expired: No more public distfiles net/linux-nx-client||2014-03-30|Has expired: No more public distfiles emulators/extract-xiso||2014-03-30|Has expired: No more public distfiles www/trac-wantedpages||2014-03-30|Has expired: No more public distfiles www/trac-codetags||2014-03-30|Has expired: No more public distfiles www/trac-addcomment||2014-03-30|Has expired: No more public distfiles www/trac-nav||2014-03-30|Has expired: No more public distfiles www/trac-pagetopdf||2014-03-30|Has expired: No more public distfiles sysutils/logmon||2014-03-30|Has expired: No more public distfiles www/trac-simpleticket||2014-03-30|Has expired: No more public distfiles www/trac-wikinegotiator||2014-03-30|Has expired: No more public distfiles www/trac-pagelist||2014-03-30|Has expired: No more public distfiles www/trac-remind||2014-03-30|Has expired: No more public distfiles www/trac-macropost||2014-03-30|Has expired: No more public distfiles lang/rscheme||2014-03-30|Has expired: No more public distfiles emulators/xmame||2014-03-30|Has expired: No more public distfiles devel/hyena||2014-04-01|Has expired: Broken for more than 6 months print/pdfmod||2014-04-01|Has expired: Depends on expired devel/hyena, unstaged, uses old standards security/gnutls-devel||2014-04-01|Has expired: Stale, broken and vulnerable sysutils/epylog||2014-04-01|Has expired: distfiles no longer fetchable japanese/Wnn6||2014-04-01|Has expired: Unmaintained, interactive and restricted japanese/srd-fpw||2014-04-01|Has expired: Unmaintained, interactive and restricted japanese/mypaedia-fpw||2014-04-01|Has expired: Unmaintained, interactive and restricted news/dnews||2014-04-01|Has expired: Unmaintained, interactive and restricted devel/adasdl|devel/sdl_gnat|2014-04-01|Has expired: Ancient, does not build on amd64; use devel/sdl_gnat instead lang/gnat|lang/gcc-aux|2014-04-01|Has expired: The Ada framework is based on lang/gcc-aux, use it instead textproc/p5-Elasticsearch|textproc/p5-Search-Elasticsearch|2014-04-02|Renamed upstream net/kdnssd|net/zeroconf-ioslave|2014-04-03|Renamed to match upstream naming www/aolserver||2014-04-03|Has expired: abandonware, messing up on clusters www/openacs-dotlrn||2014-04-03|Has expired: Depends on expiring www/aolserver www/openacs||2014-04-03|Has expired: Depends on expiring www/aolserver security/aolserver-nsmcrypt||2014-04-03|Has expired: abandonware, messing up on clusters www/aolserver-xotcl||2014-04-03|Has expired: abandonware, messing up on clusters graphics/aolserver-nsgd||2014-04-03|Has expired: abandonware, messing up on clusters security/aolserver-nsencrypt||2014-04-03|Has expired: abandonware, messing up on clusters security/aolserver-nsmhash||2014-04-03|Has expired: abandonware, messing up on clusters archivers/aolserver-nszlib||2014-04-03|Has expired: abandonware, messing up on clusters security/aolserver-nsopenssl||2014-04-03|Has expired: abandonware, messing up on clusters databases/aolserver-nspostgres||2014-04-03|Has expired: abandonware, messing up on clusters databases/aolserver-nsmysql||2014-04-03|Has expired: abandonware, messing up on clusters security/aolserver-nssha1||2014-04-03|Has expired: abandonware, messing up on clusters www/webobjects||2014-04-04|Has expired: Unmaintained, interactive and restricted devel/p5-Devel-LeakTrace-Fast||2014-04-04|Has expired: Broken for more than 6 months www/privoxy+ipv6|www/privoxy|2014-04-06|Has expired: www/privoxy natively supports IPv6 games/f1lt||2014-04-06|Trademark violation: http://www.formula1.com/trademarkguidelines.html graphics/pyggel|graphics/py-pyggel|2014-04-07|Rename to consistency with other Python ports japanese/p5-manual||2014-04-08|Outdated manuals graphics/openclipart||2014-04-08|Outdated, has no real meaning as a port audio/py-xmms||2014-04-08|Has expired: Abandonware, please consider using multimedia/audacious instead archivers/ruby-libarchive|archivers/rubygem-libarchive|2014-04-08|Use the rubygem version instead java/j2sdkee13||2014-04-10|EOLed long ago astro/glunarclock||2014-04-11|gnome-panel will be updated to the 3.x version which is not compatible with 2.x databases/libgda2||2014-04-11|Ancient version, consider using newer versions databases/libgda2-reference||2014-04-11|Ancient version, consider using newer versions databases/libgda3||2014-04-11|Ancient version, consider using newer versions databases/libgda3-reference||2014-04-11|Ancient version, consider using newer versions databases/libgda3-firebird||2014-04-11|Ancient version, consider using newer versions databases/libgda3-freetds||2014-04-11|Ancient version, consider using newer versions databases/libgda3-ldap||2014-04-11|Ancient version, consider using newer versions databases/libgda3-mdb||2014-04-11|Ancient version, consider using newer versions databases/libgda3-mysql||2014-04-11|Ancient version, consider using newer versions databases/libgda3-odbc||2014-04-11|Ancient version, consider using newer versions databases/libgda3-postgresql||2014-04-11|Ancient version, consider using newer versions databases/libgnomedb||2014-04-11|Superseded by libgda starting from version 4 databases/libgnomedb-reference||2014-04-11|Superseded by libgda starting from version 4 databases/mergeant||2014-04-11|Superseded by libgda starting from version 4 deskutils/evolution-jescs||2014-04-11|Doesn't work with newer version of evolution deskutils/nautilus-locked-folder||2014-04-11|Has expired: nautilus will be updated to the 3.x version which is not compatible with 2.x www/screem||2014-04-11|Has expired: gnome-menus 2.x will be updated in the GNOME 3 import deskutils/nautilus-open-terminal||2014-04-11|Has expired: nautilus will be updated to the 3.x version which is not compatible with 2.x sysutils/eiciel||2014-04-11|Has expired: nautilus will be updated to the 3.x version which is not compatible with 2.x sysutils/nautilus-cd-burner||2014-04-11|Has expired: nautilus will be updated to the 3.x version which is not compatible with 2.x x11-fm/py-nautilus||2014-04-11|Has expired: nautilus will be updated to the 3.x version which is not compatible with 2.x sysutils/sensors-applet||2014-04-11|Has expired: gnome-panel 2.x will be updated in the GNOME 3 import net/link-monitor-applet||2014-04-11|Has expired: gnome-panel 2.x will be updated in the GNOME 3 import net/netspeed_applet||2014-04-11|Has expired: gnome-panel 2.x will be updated in the GNOME 3 import net/remmina-applet||2014-04-11|Has expired: gnome-panel 2.x will be updated in the GNOME 3 import misc/uf-view||2014-04-11|Has expired: gnome-desktop 2.x will be updated in the GNOME 3 import textproc/uim-gnome||2014-04-11|Has expired: gnome-panel 2.x will be updated in the GNOME 3 import audio/istream||2014-04-11|Has expired: gnome-panel will be updated to the 3.x version which is not compatible with 2.x mail/contact-lookup-applet||2014-04-11|Has expired: gnome-panel will be updated to the 3.x version which is not compatible with 2.x security/tuntun||2014-04-11|Has expired: gnome-panel 2.x will be updated in the GNOME 3 import misc/quick-lounge-applet||2014-04-11|Has expired: gnome-panel 2.x will be updated in the GNOME 3 import sysutils/bubblemon2||2014-04-11|Has expired: gnome-panel 2.x will be updated in the GNOME 3 import lang/tcltutor||2014-04-11|Removed, depends on expired ports, unstaged, abandonware palm/gnome-pilot||2014-04-11|Has expired: gnome-panel 2.x will be updated in the GNOME 3 import palm/gnome-pilot-conduits||2014-04-11|Removed (depends on gnome-pilot) www/p5-CGI-modules||2014-04-11|Has expired: No more public distfiles www/p5-WWW-Link||2014-04-11|Has expired: Depends on expired www/p5-CGI-modules www/sbox-dtc||2014-04-11|Has expired: No more public distfiles textproc/glimpse||2014-04-11|Has expired: No more public distfiles ftp/ftplocate||2014-04-11|Has expired: Depends on expired textproc/glimpse misc/tkman||2014-04-11|Has expired: Depends on expired textproc/glimpse net/pcnfsd||2014-04-11|Has expired: Unmaintained since 1997 cad/chipmunk||2014-04-11|Has expired: Unmaintained since 1999 graphics/comix||2014-04-11|Has expired: Insists on installing in /usr/local, and uses nautilus2 which is deprecated www/mambo||2014-04-11|Has expired: Broken for more than 6 months japanese/exmh2||2014-04-11|Has expired: Unmaintained since 1999 net/freewais-sf||2014-04-11|Has expired: Unmaintained since 1999 editors/elvis||2014-04-11|Has expired: Unmaintained since 1999 japanese/sed||2014-04-11|Has expired: Unmaintained since 1999 x11-fm/xfm||2014-04-11|Has expired: Unmaintained since 1999 print/rtf2latex||2014-04-11|Has expired: Unmaintained since 1999 graphics/fbm||2014-04-11|Has expired: Unmaintained since 1999 devel/p5-Penguin-Easy||2014-04-11|Has expired: Unmaintained since 2000 emulators/prodosemu||2014-04-11|Has expired: Unmaintained since 2000 security/gtkportscan||2014-04-11|Has expired: Unmaintained since 2000 graphics/xmfract||2014-04-11|Has expired: Unmaintained since 2000 databases/xmbase-grok||2014-04-11|Has expired: Unmaintained since 2000 emulators/svr4_base||2014-04-11|Has expired: Unmaintained since 2000 math/freefem||2014-04-11|Has expired: Unmaintained since 2000 graphics/tiff2png||2014-04-11|Has expired: Unmaintained since 2000 math/wingz||2014-04-11|Has expired: Unmaintained since 2000 lang/STk||2014-04-11|Has expired: Unmaintained since 2000 graphics/kdc2tiff||2014-04-11|Has expired: Unmaintained since 2000 math/xlispstat||2014-04-11|Has expired: Unmaintained since 2000 databases/typhoon||2014-04-11|Has expired: Unmaintained since 2000 graphics/dc20ctrl||2014-04-11|Has expired: Unmaintained since 2000 www/fhttpd||2014-04-11|Has expired: Unmaintained since 2000 graphics/xmorph||2014-04-11|Has expired: Unmaintained since 2000 editors/axe||2014-04-11|Has expired: Unmaintained since 2000 www/cgic||2014-04-11|Has expired: Unmaintained since 2000 devel/orbitcpp||2014-04-11|Unused anymore, not libc++ friendly graphics/sodipodi|graphics/inkscape|2014-04-11|Sodipodi did not survive the Inkscape fork devel/g-wrap||2014-04-11|Unused, not stage friendly net/pvm++||2014-04-13|Has expired: Unmaintained since 2001 devel/ixlib||2014-04-13|Has expired: Unmaintained since 2001 mail/althea||2014-04-13|Has expired: Unmaintained since 2001 graphics/claraocr||2014-04-13|Has expired: Unmaintained since 2001 graphics/qvplay||2014-04-13|Has expired: Unmaintained since 2001 print/guitartex||2014-04-13|Has expired: Unmaintained since 2001 graphics/opendis||2014-04-13|Has expired: Unmaintained since 2001 net/gnome-mud||2014-04-13|Has expired: Unmaintained since 2001 graphics/maverik||2014-04-13|Has expired: Unmaintained since 2001 biology/rasmol||2014-04-13|Has expired: Unmaintained since 2001 mail/mail2procmailrc||2014-04-13|Has expired: Unmaintained since 2001 science/felt||2014-04-13|Has expired: Unmaintained since 2001 textproc/pardiff||2014-04-13|Has expired: Unmaintained since 2001 lang/klone||2014-04-13|Has expired: Unmaintained since 2001 net/rmsg||2014-04-13|Has expired: Unmaintained since 2001 net/sharity-light||2014-04-13|Has expired: Unmaintained since 2001 biology/genpak||2014-04-13|Has expired: Unmaintained since 2001 net/forg||2014-04-13|Has expired: Unmaintained since 2001 misc/txt2regex||2014-04-13|Has expired: Unmaintained since 2001 textproc/ipdf||2014-04-13|Has expired: Unmaintained since 2001 graphics/plotmtv||2014-04-13|Has expired: Unmaintained since 2001 devel/happydoc||2014-04-13|Has expired: Unmaintained since 2001 print/cpp2latex||2014-04-13|Has expired: Unmaintained since 2001 graphics/svg2swf||2014-04-13|Has expired: Unmaintained since 2001 devel/flick||2014-04-13|Has expired: Unmaintained since 2001 mail/smail||2014-04-13|Has expired: Unmaintained since 2001 net/net-http||2014-04-13|Has expired: Unmaintained since 2001 graphics/camediaplay||2014-04-13|Has expired: Unmaintained since 2001 math/umatrix||2014-04-13|Has expired: Unmaintained since 2001 lang/f77||2014-04-13|Has expired: Unmaintained since 2001 security/labrea||2014-04-14|Has expired: Unmaintained since 2003 lang/dmd|lang/dmd1|2014-04-14|Upline no longer supports dmd 1.X, it is now the secondary dmd port www/mod_python3|www/mod_python33|2014-04-15|Port moved to reflect PKGNAMESUFFIX lang/dragonegg-devel46||2014-04-16|C++ library incompatibilities, unmaintained upstream ports-mgmt/pkgsearch||2014-04-18|Has expired: Upstream disappeared science/flounder||2014-04-18|Has expired: Unmaintained since 2002 security/nbaudit||2014-04-18|Has expired: Unmaintained since 2002 security/saint||2014-04-18|Has expired: Unmaintained since 2002 graphics/gozer||2014-04-18|Has expired: Unmaintained since 2002 misc/pdfmap||2014-04-18|Has expired: Unmaintained since 2002 devel/showgrammar||2014-04-18|Has expired: Unmaintained since 2002 biology/libgenome||2014-04-18|Has expired: Unmaintained since 2002 deskutils/narval||2014-04-18|Has expired: Unmaintained since 2002 devel/fampp||2014-04-18|Has expired: Unmaintained since 2002 net-p2p/py-fngrab||2014-04-18|Has expired: Unmaintained since 2002 misc/wmfirew||2014-04-18|Has expired: Unmaintained since 2002 x11-wm/e16utils||2014-04-18|Has expired: Unmaintained since 2002 misc/salias||2014-04-18|Has expired: Unmaintained since 2002 print/latex2slides||2014-04-18|Has expired: Unmaintained since 2002 lang/sxm||2014-04-18|Has expired: Unmaintained since 2002 textproc/pybook||2014-04-18|Has expired: Unmaintained since 2002 mail/mailcrypt||2014-04-18|Has expired: Unmaintained since 2002 japanese/elvis||2014-04-18|Has expired: Unmaintained since 2002 devel/prototype||2014-04-18|Has expired: Unmaintained since 2002 print/wprint||2014-04-18|Has expired: Unmaintained since 2002 science/euler||2014-04-18|Has expired: Unmaintained since 2002 multimedia/gopchop||2014-04-18|Has expired: Unmaintained since 2002 science/gdis||2014-04-18|Has expired: Unmaintained since 2002 net/googolplex||2014-04-18|Has expired: Unmaintained since 2002 lang/logo||2014-04-18|Has expired: Unmaintained since 2002 textproc/roap||2014-04-18|Has expired: Unmaintained since 2002 x11-wm/afterstep-i18n||2014-04-18|Has expired: Unmaintained since 2002 games/yamsweeper||2014-04-18|Has expired: Unmaintained since 2002 net-mgmt/echolot||2014-04-18|Has expired: Unmaintained since 2002 security/pam_smb||2014-04-18|Has expired: Unmaintained since 2002 devel/lua-redis-parser||2014-04-18|Has expired: Broken for more than 6 months biology/finchtv||2014-04-18|Has expired: Broken for more than 6 months net-im/ari-yahoo||2014-04-18|Has expired: Broken for more than 1 year (http://www.icculus.org/ari-yahoo/) www/sams||2014-04-21|Depends on PHP 4 which was removed two years ago x11-toolkits/vdkbuilder||2014-04-22|Abandonware, not stage friendly emulators/mupen64-sdlinput|emulators/mupen64plus-input-sdl|2014-04-24|Has expired: Use mupen64plus instead emulators/mupen64-sdlaudio|emulators/mupen64plus-audio-sdl|2014-04-24|Has expired: Use mupen64plus instead emulators/mupen64-tr64||2014-04-24|Has expired: Use mupen64plus instead emulators/mupen64-gln64||2014-04-24|Has expired: Use mupen64plus instead emulators/mupen64-sound||2014-04-24|Has expired: Use mupen64plus instead emulators/mupen64-rsp||2014-04-24|Has expired: Use mupen64plus instead emulators/mupen64-input||2014-04-24|Has expired: Use mupen64plus instead emulators/mupen64-glide|emulators/mupen64plus-video-glide64|2014-04-24|Has expired: Use mupen64plus instead emulators/mupen64|emulators/mupen64plus|2014-04-24|Has expired: Use mupen64plus instead emulators/mupen64-softgfx||2014-04-24|Has expired: Use mupen64plus instead emulators/mupen64-dummyaudio||2014-04-24|Has expired: Use mupen64plus instead emulators/mupen64-base|emulators/mupen64plus-core|2014-04-24|Has expired: Use mupen64plus instead x11/emu||2014-04-24|Has expired: Broken, not staged lang/ruby-doc-stdlib||2014-04-24|Has expired: Upstream rerolls frequently, online docs work well emulators/mupen64-rice|emulators/mupen64plus-video-rice|2014-04-24|Removed, part of removed mupen64 devel/otrs|www/otrs|2014-04-28|OTRS is actually web based ticket system and it has nothing with development audio/cantus_3||2014-04-28|Broken for a while, does not build with modern compilers multimedia/xfce4-xmms-plugin||2014-04-28|Has expired: Abandonware, and can't select another player instead XMMS multimedia/xmms-weasel||2014-04-28|Has expired: Abandonware, please consider using multimedia/audacious instead audio/xmms-sexyspc||2014-04-28|Has expired: Abandonware, please consider using multimedia/audacious instead audio/libmusicbrainz4|audio/libmusicbrainz5|2014-04-28|Has expired: Please use audio/libmusicbrainz5 instead science/netcdf-ftn|science/netcdf-fortran|2014-05-03|Use science/netcdf-fortran instead science/netcdf3-ftn|science/netcdf-fortran|2014-05-03|Use science/netcdf-fortran instead science/netcdf4|science/netcdf|2014-05-03|Use science/netcdf instead x11-toolkits/gigi||2014-05-04|Has expired: Does not compile on 10 or higher net/asterisk-oh323||2014-05-04|Has expired: Depends on broken and unsupported asterisk14 net/asterisk14||2014-05-04|Has expired: Broken and unsupported net/asterisk14-addons||2014-05-04|Has expired: Depends on broken and unsupported asterisk14 ports-mgmt/pkg_install||2014-05-04|Has expired: Replaced by ports-mgmt/pkg x11-drivers/xf86-input-magictouch||2014-05-04|Has expired: Does not compile x11-drivers/xf86-video-cyrix||2014-05-04|Has expired: requires pciVideoPtr typedef x11-drivers/xf86-video-sis-intel||2014-05-04|Has expired: requires pciVideoPtr typedef net/py-spreadmodule||2014-05-04|Has expired: Depends on expired net/spread net/p5-Spread-Message||2014-05-04|Has expired: Depends on expired net/spread net/p5-POE-Component-Spread||2014-05-04|Has expired: Depends on expired net/spread net/p5-Spread-Session||2014-05-04|Has expired: Depends on expired net/spread lang/ml-pnet||2014-05-04|Has expired: Alpha-quality abandonware - Decommissioned Dec 2012 - Use mono lang/treecc||2014-05-04|Has expired: PNET dependency decommissioned Dec 2012 lang/pnetlib||2014-05-04|Has expired: Alpha-quality abandonware - Decommissioned Dec 2012 - Use mono lang/pnet-base||2014-05-04|Has expired: Alpha-quality abandonware - Decommissioned Dec 2012 - Use mono benchmarks/pnetmark||2014-05-04|Has expired: PNET dependency decommissioned Dec 2012 lang/pnet||2014-05-04|Has expired: Alpha-quality abandonware - Decommissioned Dec 2012 - Use mono sysutils/cpupowerd||2014-05-04|Has expired: Not maintained from upstream anymore and only supports ancient AMD K8 net/pchar||2014-05-04|Has expired: Obsolete, abandoned x11-fonts/texcm-ttf||2014-05-04|Has expired: Should be replaced by x11-fonts/stix-fonts devel/buildapp||2014-05-05|Has expired: Broken for more than 6 months converters/konwert||2014-05-05|Broken with modern compilers, not staged, no upstream graphics/gimp-gap||2014-05-05|Broken with gimp 2.8, no release in 5 years games/gnome-games-extra-data||2014-05-05|Not used in GNOME 3 audio/libshout2|audio/libshout|2014-05-05|Use audio/libshout instead devel/bsdlibdwarf||2014-05-06|Has expired: Outdated, included in all supported versions of FreeBSD security/yassl|security/cyassl|2014-05-06|Moved to match upstream name lang/open-cobol|lang/gnu-cobol|2014-05-07|Moved to match upstream name change sysutils/lire||2014-05-11|Project is dead net/ipfw-graph||2014-05-11|Project is dead java/linux-sun-jre16||2014-05-11|Has expired: Unsupported and known for multiple security vulnerabilities java/linux-sun-jdk16||2014-05-11|Has expired: Unsupported and known for multiple security vulnerabilities ports-mgmt/pver||2014-05-11|Has expired: does not support pkgng databases/firebird20-client|databases/firebird25-client|2014-05-11|Firebird 2.0 is EOLed databases/firebird20-server|databases/firebird25-server|2014-05-11|Firebird 2.0 is EOLed editors/ved||2014-05-15|Has expired: Depends on deprecated smake japanese/chasen||2014-05-15|Has expired: Unmaintained since 2001 www/openx|www/revive-adserver|2014-05-15|Upstream obsolete, forked security/clamav-devel||2014-05-16|Retire, older than security/clamav devel/msp430-gcc3||2014-05-18|Version obsolete, use devel/msp430-gcc graphics/GraphicsMagick12|graphics/GraphicsMagick13|2014-05-20|Has expired: Unmaintained upstream, no ports depending on it. Use graphics/GraphicsMagick13 instead net-im/tkabber-devel|net-im/tkabber|2014-05-23|Has expired: Unfetchable, outdated by net-im/tkabber devel/libglade-java||2014-05-26|Has expired: Unmaintained, outdated, not depended on lang/lua|lang/lua51|2014-05-26|Rename to allow multiple version of lua to coexist math/py-graphtool||2014-05-27|Has expired: Broken for more than 6 months devel/clint||2014-05-27|Has expired: Broken for more than 6 months x11-toolkits/libgtk-java||2014-05-27|Has expired: Unmaintained, outdated, not depended on graphics/cairo-java||2014-05-27|Has expired: Unmaintained, outdated, not depended on devel/libgconf-java||2014-05-27|Has expired: Unmaintained, outdated, not depended on x11/libgnome-java||2014-05-27|Has expired: Unmaintained, outdated, not depended on security/calife-devel||2014-05-28|Replaced by security/calife sysutils/synergy-devel||2014-05-30|Replaced by sysutils/synergy net-im/vicq||2014-05-30|Has expired: Unmaintained, outdated, not depended on net-im/mercury||2014-05-31|Has expired: MSN is dying and the domain mercury.im is down german/bsdgroup-firefox-searchplugin||2014-05-31|Has expired: bsdgroup.de no longer seems to exist german/bsdforen-firefox-searchplugin||2014-05-31|Has expired: No longer works after forum software update lang/ocaml-doc||2014-06-01|Has expired: Documentation is now included in lang/ocaml lang/ocaml-examples||2014-06-01|Has expired: Outdated and discontinued; new examples are in lang/ocaml lang/gnat-aux|lang/gcc-aux|2014-06-01|Has expired: superseded by gcc4.9-based lang/gcc-aux, use it instead lang/python31|lang/python33|2014-06-01|Has expired: Python 3.1 will be end-of-life soon, please migrate to lang/python33 net/cvsup-mirror||2014-06-01|Removed: www, doc, gnats, ports repo gone; src repo deprecated multimedia/shell-fm||2014-06-02|Has expired: Unusable, subscription radio streaming service will come to an end security/py-posix1e|security/py-pylibacl|2014-06-03|Duplicate of security/py-pylibacl www/mediawiki120||2014-06-08|Has expired: Not maintained upstream x11-drivers/input-wacom|x11-drivers/xf86-input-wacom|2014-06-11|Following the usual naming of X.Org input drivers editors/libreoffice-ca_XV|editors/libreoffice-ca_valencia|2014-06-11|Port has been renamed editors/libreoffice-ku||2014-06-11|Not provided anymore since LibreOffice 4.2 editors/libreoffice-sh||2014-06-11|Not provided anymore since LibreOffice 4.2 net/callweaver||2014-06-12|Project is dead net-im/openfire-devel||2014-06-13|Removed databases/py-cmemcache||2014-06-15|Has expired: Deprecated upstream games/mangos||2014-06-15|Has expired: Broken for more than 6 months lang/clojure-contrib||2014-06-15|Has expired: monolithic contrib library is obsolete devel/bzapi||2014-06-15|Has expired: Bugzilla has a native REST API, see https://wiki.mozilla.org/BMO/REST graphics/GraphicsMagick13|graphics/GraphicsMagick|2014-06-17|Removed, duplicate of unversioned GraphicsMagick port textproc/m17n-contrib|devel/m17n-db|2014-06-18|m17n-contrib was incorporated into m17n-db www/xpi-deepestsender||2014-06-18|Upstream disappeared, not working with modern Mozilla applications devel/tortoisehg2|devel/tortoisehg|2014-06-20|Port has been renamed german/bugzilla40|german/bugzilla44|2014-06-21|Removed, localized version of expired devel/bugzilla40 german/bugzilla42|german/bugzilla44|2014-06-21|Removed, localized version of expired devel/bugzilla42 japanese/bugzilla40|japanese/bugzilla44|2014-06-21|Removed, localized version of expired devel/bugzilla40 japanese/bugzilla42|japanese/bugzilla44|2014-06-21|Removed, localized version of expired devel/bugzilla42 russian/bugzilla40|russian/bugzilla44|2014-06-21|Removed, localized version of expired devel/bugzilla40 russian/bugzilla42|russian/bugzilla44|2014-06-21|Removed, localized version of expired devel/bugzilla42 mail/sastatd|sysutils/p5-Tail-Stat|2014-06-21|Has expired: Superseded by sysutils/p5-Tail-Stat www/mod_ruby||2014-06-21|Has expired: Only for threadless Ruby textproc/eruby|www/rubygem-erubis|2014-06-21|Has expired: Only for threadless ruby, use ruby-gem erubis instead mail/p5-FuzzyOcr|mail/p5-FuzzyOcr-devel|2014-06-21|Has expired: Unmaintained upstream, no ports depending on it. Use mail/p5-FuzzyOcr-devel instead devel/bugzilla40|devel/bugzilla44|2014-06-21|Has expired devel/bugzilla42|devel/bugzilla44|2014-06-21|Has expired sysutils/sysupdate||2014-06-21|Removed, no longer needed/relevant with FreeBSD in SVN www/phpbb-devel|www/phpbb3|2014-06-22|Has expired: Use www/phpbb3 instead math/polymake||2014-06-22|Has expired: Does not build with any supported version of Perl www/phpsysinfo-dev|www/phpsysinfo|2014-06-22|Has expired: Use www/phpsysinfo instead print/pkg-texinfo|print/texinfo-minimal|2014-06-24|Has been renamed sysutils/pc-sysinstall|sysutils/pcbsd-utils|2014-06-24|Removed: pc-sysinstall is included in sysutils/pcbsd-utils print/texinfo-minimal|print/texinfo-lite|2014-06-24|Has been renamed devel/gmake-minimal|devel/gmake-lite|2014-06-24|Has been renamed converters/mule-ucs||2014-06-27|Removed: dependent on editors/emacs21 devel/elib-emacs21||2014-06-27|Removed: dependent on editors/emacs21 editors/apel-emacs21||2014-06-27|Removed: dependent on editors/emacs21 editors/apel-emacs22||2014-06-27|Removed: dependent on editors/emacs22 editors/emacs21||2014-06-27|Removed: unmaintained upstream editors/emacs22||2014-06-27|Removed: unmaintained upstream editors/flim-emacs21||2014-06-27|Removed: dependent on editors/emacs21 editors/flim-emacs22||2014-06-27|Removed: dependent on editors/emacs22 editors/semi-emacs21||2014-06-27|Removed: dependent on editors/emacs21 editors/semi-emacs22||2014-06-27|Removed: dependent on editors/emacs22 irc/riece-emacs21||2014-06-27|Removed: dependent on editors/emacs21 japanese/emacs-emcws||2014-06-27|Removed: dependent on editors/emacs21 japanese/lookup-emacs21||2014-06-27|Removed: dependent on editors/emacs21 japanese/migemo-emacs21||2014-06-27|Removed: dependent on editors/emacs21 japanese/migemo-emacs22||2014-06-27|Removed: dependent on editors/emacs22 mail/c-sig-emacs21||2014-06-27|Removed: dependent on editors/emacs21 mail/wanderlust-emacs21||2014-06-27|Removed: dependent on editors/emacs21 mail/wanderlust-emacs22||2014-06-27|Removed: dependent on editors/emacs22 math/emacs-calc||2014-06-27|Removed: dependent on editors/emacs21 textproc/uim-el-emacs21||2014-06-27|Removed: dependent on editors/emacs21 textproc/uim-el-emacs22||2014-06-27|Removed: dependent on editors/emacs22 textproc/yaml-mode.el-emacs21||2014-06-27|Removed: dependent on editors/emacs21 www/emacs-w3m-emacs21||2014-06-27|Removed: dependent on editors/emacs21 www/emacs-w3m-emacs22||2014-06-27|Removed: dependent on editors/emacs22 devel/ode-devel|devel/ode|2014-06-27|Has expired: Outdated by devel/ode java/eclipse-devel|java/eclipse|2014-06-29|Concentrate maintenance effort on newer java/eclipse textproc/ruby-hikidoc|textproc/rubygem-hikidoc|2014-06-29|Use textproc/rubygem-hikidoc instead textproc/metaf2xml|science/metaf2xml|2014-06-30|Moved to a more appropriate category on maintainer request www/trac-TracDuplicates||2014-06-30|Has expired: Broken for more than 5 months mail/hotwayd||2014-06-30|Has expired: Protocol changed, software unusable mail/ilohamail-devel||2014-06-30|Has expired: Upstream disappeared games/tyrquake||2014-06-30|Has expired: Broken for more than 5 months net/gkrellmqst||2014-06-30|Has expired: GKrellM 1.X is no longer being developed, consider using 2.X security/p5-Jifty-Plugin-OpenID||2014-06-30|Has expired: Broken for more than 5 months games/sumwars||2014-06-30|Has expired: Broken for more than 5 months audio/ruby-esound||2014-06-30|Has expired: Broken for more than 5 months x11-toolkits/py-pyqwt||2014-06-30|Has expired: Broken for more than 5 months net-im/ysm||2014-06-30|Has expired: Broken for more than 5 months net/p5-Jifty-Plugin-Authentication-Ldap||2014-06-30|Has expired: Broken for more than 5 months net-p2p/bittyrant||2014-06-30|Has expired: Broken for more than 5 months sysutils/gkrellm||2014-06-30|Has expired: GKrellM 1.X is no longer being developed, consider using 2.X audio/gkrellmms||2014-06-30|Has expired: GKrellM 1.X is no longer being developed, consider using 2.X audio/gkrellmvolume||2014-06-30|Has expired: GKrellM 1.X is no longer being developed, consider using 2.X misc/gkrellmlaunch||2014-06-30|Has expired: GKrellM 1.X is no longer being developed, consider using 2.X misc/gkrellmfmonitor||2014-06-30|Has expired: GKrellM 1.X is no longer being developed, consider using 2.X misc/gkrellshoot||2014-06-30|Has expired: GKrellM 1.X is no longer being developed, consider using 2.X polish/sms2||2014-06-30|Has expired: sms2 is no longer being developed, consider using alternative software x11-toolkits/py-wmdockapps||2014-06-30|Has expired: Crufty and nothing depends on this audio/tagger||2014-06-30|Has expired: Ancient, unmaintained www/mod_wsgi2|www/mod_wsgi3|2014-06-30|Has expired: No longer supported, please use www/mod_wsgi3 instead security/botan|security/botan110|2014-06-30|Has expired: Botan 1.8 have known bugs and is no longer supported upstream, migrate to security/botan110 deskutils/checkrdf||2014-06-30|Removed: Abandonware, please consider using other software graphics/k3d||2014-06-30|Has expired: Broken for more than 5 months mail/cyrus-imapd2|mail/cyrus-imapd24|2014-06-30|Has expired: Cyrus IMAPd 2.1.X have been deprecated, consider using 2.4.X mail/cyrus-imapd22|mail/cyrus-imapd24|2014-06-30|Has expired: No further releases of 2.2.X are planned, consider using 2.4.X editors/xemacs||2014-06-30|Removed: unmaintained upstream editors/xemacs-devel||2014-06-30|Removed: unmaintained upstream chinese/xemacs||2014-06-30|Removed: unmaintained upstream editors/flim-xemacs21-mule||2014-06-30|Removed: depend on editors/xemacs editors/semi-xemacs21-mule||2014-06-30|Removed: depend on editors/xemacs editors/xemacs-devel-mule||2014-06-30|Removed: depend on editors/xemacs-devel editors/xemacs-mule-packages||2014-06-30|Removed: depend on editors/xemacs editors/xemacs-packages||2014-06-30|Removed: depend on editors/xemacs editors/xemacs21-mule||2014-06-30|Removed: depend on editors/xemacs japanese/migemo-xemacs-devel-mule||2014-06-30|Removed: depend on editors/xemacs-devel japanese/xemacs21-canna||2014-06-30|Removed: depend on editors/xemacs mail/emh-xemacs21-mule||2014-06-30|Removed: depend on editors/xemacs mail/wanderlust-xemacs21-mule||2014-06-30|Removed: depend on editors/xemacs textproc/dictem-xemacs21-mule||2014-06-30|Removed: depend on editors/xemacs textproc/uim-el-xemacs21-mule||2014-06-30|Removed: depend on editors/xemacs www/emacs-w3m-xemacs21-mule||2014-06-30|Removed: depend on editors/xemacs security/sudosh3||2014-07-01|Has expired: Funcition replaced by sudo -s security/sudosh||2014-07-01|Has expired: Funcition replaced by sudo -s security/sudosh2||2014-07-01|Has expired: Funcition replaced by sudo -s lang/pike76|lang/pike78|2014-07-01|Has expired: Outdated: Users should switch to lang/pike78 editors/gummi||2014-07-01|Has expired: Builds fine but the program itself is unusable archivers/rpm|archivers/rpm4|2014-07-03|rpm3 is long EOLed, rpm4 is the default rpm archivers for most of linux distributions x11-clocks/wmitime||2014-07-04|Has expired x11/xorg-edit||2014-07-04|Has expired: Depends on older version of wxGTK net/ttbudget||2014-07-06|Has expired: does not build, mastersite disapperead, not staged sysutil/psgconf||2014-07-06|Removed: abandonware print/texinfo-lite|print/indexinfo|2014-07-06|Replaced by indexinfo to handle info page index audio/linnya||2014-07-07|Deprecated upstream databases/slony1|databases/slony1v2|2014-07-07|Unsupported: consider using slony1 v2 instead lang/see-devel|lang/see|2014-07-07|lang/see is up to date no need for see-devel net-p2p/libtorrent-devel||2014-07-07|libtorrent port has newer version, use that instead net-p2p/rtorrent-devel||2014-07-07|rtorrent port has newer version, use that instead net-im/qxmpp-leechcraft|net-im/qxmpp|2014-07-09|Removed:qxmpp-leechcraft is now merged into qxmpp textproc/stardict-BritannicaConcise||2014-07-10|Removed due to possible copyright infringement textproc/stardict-MerrianWebster||2014-07-10|Removed due to possible copyright infringement textproc/stardict-OxfordCollocation||2014-07-10|Removed due to possible copyright infringement textproc/stardict-longman||2014-07-10|Removed due to possible copyright infringement textproc/stardict-oald||2014-07-10|Removed due to possible copyright infringement editors/nxml||2014-07-13|Needs recently removed emacs21 or emacs22 graphics/py-stl|graphics/py-stltools|2014-07-13|Upstream project has been renamed audio/muine||2014-07-13|Has expired: Fails to build/run since August 2013 x11-themes/kde4-windeco-nitrogen||2014-07-14|Has expired: Merged with the Oxygen windeco included with KDE4 net/linphone-base||2014-07-14|Split into separate components databases/py-simplecouchdb||2014-07-15|Has expired: Obsolete, abandoned audio/xmms-bonk||2014-07-15|Has expired: Obsolete experimental codec, use audio/flac or audio/wavpack audio/bonk||2014-07-15|Has expired: Obsolete experimental codec, use audio/flac or audio/wavpack sysutils/gtk-send-pr||2014-07-17|Has expired: Obsolete after migration to Bugzilla lang/stklos||2014-07-20|Has expired: Fails testsuite on all platforms, unmaintained upstream lang/ikarus||2014-07-20|Has expired: Upstream project died in 2009 security/pam_pgina||2014-07-20|Has expired: main site disappeared, no more public distfiles www/linux-opera-devel|www/opera|2014-07-20|Has expired: Not staged and multiple vulnerabilities www/opera-devel|www/opera|2014-07-20|Has expired: Not staged, multiple vulnerabilities, older than non-devel accessibility/at-poke||2014-07-21|Has expired: Depends on expired libgailgnome misc/bigboard||2014-07-21|Has expired: gnome-panel will be updated to the 3.x version which is not compatible with 2.x net/desktop-data-model||2014-07-21|Has expired: gnome-desktop 2.x will be updated in the GNOME 3 import net/online-desktop||2014-07-21|Has expired: Disappeared upstream, depends on expired ports x11-toolkits/libgail-gnome||2014-07-21|Has expired: gnome-panel 2.x will be updated in the GNOME 3 import security/gnutls3|security/gnutls|2014-07-22|Moved to replace GnuTLS 2.x port print/latex-ifluatex|print/texlive-texmf|2014-07-23|Has been incorporated into texlive-texmf print/teTeX|print/texlive-full|2014-07-23|Replaced by texlive print/passivetex|print/tex-xmltex|2014-07-23|Has been incorporated in TeXLive version of xmltex print/xmltex|print/tex-xmltex|2014-07-23|Replaced by texlive print/latex-caption|print/texlive-texmf|2014-07-23|Has been incorporated in TeXLive print/xdvik|print/tex-xdvik|2014-07-23|Replaced by texlive print/latex-subfloat|print/texlive-texmf|2014-07-23|Has been incorporated in TeXLive print/latex-circ|print/texlive-texmf|2014-07-23|Has been incorporated in TeXLive print/latex-prettyref|print/texlive-texmf|2014-07-23|Has been incorporated in TeXLive print/latex-nomencl|print/texlive-texmf|2014-07-23|Has been incorporated in TeXLive print/latex-mathabx|print/texlive-texmf|2014-07-23|Has been incorporated in TeXLive print/latex-arydshln|print/texlive-texmf|2014-07-23|Has been incorporated in TeXLive print/latex-feynmf|print/texlive-texmf|2014-07-23|Has been incorporated in TeXLive print/latex-chapterfolder|print/texlive-texmf|2014-07-23|Has been incorporated in TeXLive print/latex-cjk|print/texlive-base|2014-07-23|Has been incorporated in TeXLive print/latex-aastex|print/texlive-texmf|2014-07-23|Has been incorporated in TeXLive print/latex-biblatex|print/texlive-texmf|2014-07-23|Has been incorporated in TeXLive print/latex-biblist|print/texlive-texmf|2014-07-23|Has been incorporated in TeXLive print/latex-bytefield|print/texlive-texmf|2014-07-23|Has been incorporated in TeXLive print/latex-csquotes|print/texlive-texmf|2014-07-23|Has been incorporated in TeXLive print/latex-etoolbox|print/texlive-texmf|2014-07-23|Has been incorporated in TeXLive print/latex-keystroke|print/texlive-texmf|2014-07-23|Has been incorporated in TeXLive print/latex-logpap|print/texlive-texmf|2014-07-23|Has been incorporated in TeXLive print/latex-logreq|print/texlive-texmf|2014-07-23|Has been incorporated in TeXLive print/latex-pgf|print/texlive-texmf|2014-07-23|Has been incorporated in TeXLive print/latex-supertabular|print/texlive-texmf|2014-07-23|Has been incorporated in TeXLive print/latex-svninfo|print/texlive-texmf|2014-07-23|Has been incorporated in TeXLive print/latex-tipa|print/texlive-texmf|2014-07-23|Has been incorporated in TeXLive print/latex-ucs|print/texlive-texmf|2014-07-23|Has been incorporated in TeXLive print/teTeX-base|print/texlive-base|2014-07-23|Has been incorporated in TeXLive print/teTeX-texmf|print/texlive-texmf|2014-07-23|Has been incorporated in TeXLive japanese/xdvik|print/tex-xdvik|2014-07-23|Use TeXLive version japanese/latex2html||2014-07-23|Depends on decomissioned teTeX japanese/platex209||2014-07-23|Depends on decomissioned teTeX japanese/platex-jsclasses||2014-07-23|Depends on decomissioned teTeX japanese/platex-otf||2014-07-23|Depends on decomissioned teTeX japanese/jadetex-ptex|japanese/tex-ptex|2014-07-23|Use TeXLive version japanese/dvipsk|print/tex-dvipsk|2014-07-23|Use TeXLive version print/dvipsk-tetex|print/tex-dvipsk|2014-07-23|Use TeXLive version print/dvipdfmx|print/tex-dvipdfmx|2014-07-23|Use TeXLive version print/jadetex|print/tex-jadetex|2014-07-23|Use TeXLive version japanese/teTeX|print/texlive-full|2014-07-23|Use TeXLive chinese/big5con||2014-07-24|Has expired: Fails to build with new utmpx chinese/hztty||2014-07-24|Has expired: Fails to build with new utmpx irc/solid-ircd||2014-07-24|Has expired: Fails to build with new utmpx korean/eterm||2014-07-24|Has expired: Fails to build with new utmpx mail/biffer||2014-07-24|Has expired: Fails to build with new utmpx misc/c-hey||2014-07-24|Has expired: Fails to build with new utmpx misc/wminfo||2014-07-24|Has expired: Fails to build with new utmpx net/sendfile||2014-07-24|Has expired: Fails to build with new utmpx net-im/centericq||2014-07-24|Has expired: Fails to build with new utmpx security/openfwtk||2014-07-24|Has expired: Fails to build with new utmpx security/pam_alreadyloggedin||2014-07-24|Has expired: Fails to build with new utmpx security/srp||2014-07-24|Has expired: Fails to build with new utmpx security/sud||2014-07-24|Has expired: Fails to build with new utmpx sysutils/hyperic-sigar||2014-07-24|Has expired: Fails to build with new utmpx sysutils/lookupd||2014-07-24|Has expired: Fails to build with new utmpx sysutils/lookupd_ldap||2014-07-24|Has expired: Fails to build with new utmpx sysutils/p5-Sys-Utmp||2014-07-24|Has expired: Fails to build with new utmpx sysutils/syslog-ng2||2014-07-24|Has expired: Fails to build with new utmpx sysutils/yawho||2014-07-24|Has expired: Fails to build with new utmpx devel/p5-MetaCPAN-API|devel/p5-MetaCPAN-Client|2014-07-27|Has expired: Use devel/p5-MetaCPAN-Client instead net-im/pidgin-facebookchat||2014-07-27|Has expired: obsolete, development has ceased, not staged net-im/gtkyahoo||2014-07-28|Has expired: Broken, unmaintained, unstaged, gtk12, i386 only devel/cl-cffi-clisp||2014-07-28|Has expired: Depends on deprecated lang/clisp devel/cl-alexandria-clisp||2014-07-28|Has expired: Depends on deprecated lang/clisp converters/cl-babel-clisp||2014-07-28|Has expired: Depends on deprecated lang/clisp devel/cl-infix-clisp||2014-07-28|Has expired: Depends on deprecated lang/clisp devel/meta-cvs||2014-07-28|Has expired: Depends on deprecated lang/clisp textproc/cl-meta-clisp||2014-07-28|Has expired: Depends on deprecated lang/clisp www/cl-lml-clisp||2014-07-28|Has expired: Depends on deprecated lang/clisp devel/cl-trivial-features-clisp||2014-07-28|Has expired: Depends on deprecated lang/clisp security/cl-md5-clisp||2014-07-28|Has expired: Depends on deprecated lang/clisp devel/cl-port-clisp||2014-07-28|Has expired: Depends on deprecated lang/clisp textproc/cl-ppcre-clisp||2014-07-28|Has expired: Depends on deprecated lang/clisp devel/cl-asdf-clisp||2014-07-28|Has expired: Depends on deprecated lang/clisp devel/cl-split-sequence-clisp||2014-07-28|Has expired: Depends on deprecated lang/clisp devel/cl-trivial-gray-streams-clisp||2014-07-28|Has expired: Depends on deprecated lang/clisp lang/clisp||2014-07-28|Has expired: development has ceased, not staged print/texpower|print/texlive-texmf|2014-07-28|Has been incorporated in TeXLive print/tex-mfpic|print/texlive-texmf|2014-07-28|Has been incorporated in TeXLive lang/sml-nj-devel|lang/smlnj|2014-07-30|The -devel was updated and is now production-ready lang/sml-nj|lang/smlnj|2014-07-30|Use lang/smlnj as newer version www/ajaxplorer|www/pydio|2014-07-31|Project renamed converters/igbinary|converters/pecl-igbinary|2014-07-31|The project has been moved to PECL mail/postfix27||2014-07-31|Has expired: No longer supported by upstream misc/freecode-submit||2014-07-31|Has expired: This software is obsolete. Freecode does not accept updates anymore mail/exim-doc-info||2014-07-31|Has expired: yes misc/gman||2014-07-31|Has expired: Depends on expiring ghostview print/ghostview|print/gv|2014-07-31|Has expired: project dead nearly a decade ago; use print/gv instead mail/getlive||2014-08-01|Has expired: GetLive project has been declared dead due to MS account conversion print/ifxetex||2014-08-01|Has expired: Very outdated and fully contained in texlive-texmf lang/dragonegg46-33||2014-08-01|Has expired: Dead upstream, impractical to build on 10 and later lang/dragonegg47-33||2014-08-01|Has expired: Dead upstream, impractical to build on 10 and later print/freetype-tools|print/texlive-texmf|2014-08-01|Has been incorporated in TeXLive sysutils/readlink||2014-08-03|Has expired: All features implemented in the base system since FreeBSD 8.3 net-mgmt/bsd-airtools||2014-08-04|Has expired: broken by removal of wicontrol ioctls from if_wavelan_ieee.h; domain disappeared www/moodle||2014-08-04|Has expired: Upstream support ended databases/bucardo|databases/p5-Bucardo|2014-08-04|Duplicate port removed security/p5-openxpki-client|security/p5-openxpki|2014-08-04|Has expired: now incorporated within security/p5-openxpki security/p5-openxpki-client-scep|security/p5-openxpki|2014-08-04|Has expired: now incorporated within security/p5-openxpki security/p5-openxpki-deployment|security/p5-openxpki|2014-08-04|Has expired: now incorporated within security/p5-openxpki news/husky-base-devel||2014-08-05|Has been incorporated into the build process of other husky-*-devel ports archivers/hs-zlib-conduit||2014-08-10|Removed: Deprecated in favor of conduit-extra devel/hs-IORefCAS||2014-08-10|Removed: Deprecated in favor of atomic-primops devel/hs-Tensor||2014-08-10|Removed: Deprecated devel/hs-attempt||2014-08-10|Removed: Deprecated in favor of exceptions devel/hs-base64-conduit||2014-08-10|Removed: Deprecated in favor of conduit-combinators devel/hs-blaze-builder-conduit||2014-08-10|Removed: Deprecated in favor of conduit-extra devel/hs-drift|devel/hs-DrIFT|2014-08-10|Renamed: Converted to use the Cabal framework devel/hs-failure||2014-08-10|Removed: Deprecated in favor or exceptions devel/hs-filesystem-conduit||2014-08-10|Removed: Deprecated in favor of conduit-combinators devel/hs-haskeline||2014-08-10|Removed: Become part of GHC devel/hs-pool-conduit||2014-08-10|Removed: Deprecated in favor of resource-pool devel/hs-profunctor-extras||2014-08-10|The package has been absorbed into profunctors devel/hs-terminfo||2014-08-10|Removed: Become part of GHC devel/hs-transformers||2014-08-10|Removed: Become part of GHC math/hs-comonad-transformers||2014-08-10|Deprecated in favor of comonad math/hs-comonads-fd||2014-08-10|Deprecated in favor of comonad math/hs-groupoids||2014-08-10|Deprecated in favor of semigroupoids math/hs-semigroupoid-extras||2014-08-10|Deprecated in favor of semigroupoids net/hs-network-conduit||2014-08-10|Removed: Deprecated in favor of conduit-extra security/hs-tls-extra||2014-08-10|Removed: Deprecated in favor of tls textproc/hs-attoparsec-conduit||2014-08-10|Removed: Deprecated in favor of conduit-extra textproc/hs-xhtml||2014-08-10|Removed: Become part of GHC www/hs-hamlet||2014-08-10|Removed: Deprecated in favor of shakespeare www/hs-shakespeare-css||2014-08-10|Removed: Deprecated in favor of shakespeare www/hs-shakespeare-i18n||2014-08-10|Removed: Deprecated in favor of shakespeare www/hs-shakespeare-js||2014-08-10|Removed: Deprecated in favor of shakespeare www/hs-shakespeare-text||2014-08-10|Removed: Deprecated in favor of shakespeare www/hs-wai-test||2014-08-10|Removed: Deprecated in favor of wai-extra devel/rubygem-foreman_api||2014-08-11|Removed: Deprecated by upstream security/termlog||2014-08-11|Has expired: Fails to build with new utmpx, unstaged, maintainer timeout games/linux-americasarmy||2014-08-13|Removed: Unsupported by upstream, distfile unavailable devel/kyua-atf-compat|devel/kyua|2014-08-14|Upstream merged all components into devel/kyua devel/kyua-cli|devel/kyua|2014-08-14|Upstream merged all components into devel/kyua devel/kyua-testers|devel/kyua|2014-08-14|Upstream merged all components into devel/kyua devel/glib-java||2014-08-14|Has expired: Unmaintained, outdated not depend on www/phpgedview|www/webtrees|2014-08-15|Has expired: superseded by www/webtrees graphics/luxrays||2014-08-15|Has expired: No longer needed as luxrender bundles its own verion now net-mgmt/cflowd||2014-08-15|Has expired: Unmaintained 10 years, requires dozens of patches, unverifiable archivers/unzip-iconv|archivers/unzip|2014-08-15|Merged with archivers/unzip as a new non-default option chinese/unzip|archivers/unzip|2014-08-15|Merged with archivers/unzip as a new non-default option korean/unzip|archivers/unzip|2014-08-15|Merged with archivers/unzip as a new non-default option russian/unzip|archivers/unzip|2014-08-15|Merged with archivers/unzip as a new non-default option mail/sendmail-sasl|mail/sendmail|2014-08-15|Removed: Use mail/sendmail instead print/cups-samba||2014-08-15|Removed: defunct for long, disappeared upstream databases/db4|databases/db48|2014-08-15|Superseded by databases/db48 databases/db41|databases/db48|2014-08-15|Superseded by databases/db48 databases/db41-nocrypto|databases/db48|2014-08-15|Superseded by databases/db48 databases/db42|databases/db48|2014-08-15|Superseded by databases/db48 databases/db42-nocrypto|databases/db48|2014-08-15|Superseded by databases/db48 databases/db43|databases/db48|2014-08-15|Superseded by databases/db48 databases/db44|databases/db48|2014-08-15|Superseded by databases/db48 databases/db46|databases/db48|2014-08-15|Superseded by databases/db48 databases/db47|databases/db48|2014-08-15|Superseded by databases/db48 security/sguil-client|security/sguil|2014-08-16|Merged into new port security/sguil security/sguil-sensor|security/sguil|2014-08-16|Merged into new port security/sguil security/sguil-server|security/sguil|2014-08-16|Merged into new port security/sguil databases/jasperserver||2014-08-18|Has expired: Unstaged, depends on expiring devel/maven2 devel/maven2|devel/maven3|2014-08-18|Has expired: No longer supported by the Apache Foundation. Use 3.x instead x11-clocks/alarm-clock||2014-08-18|Removed: disappeared upstream mail/rss2email|mail/rss2email2|2014-08-19|Renamed to avoid ambiguity with mail/rss2email3 news/husky-base||2014-08-19|Obsolete due to husky-*-devel => husky-* migration news/husky-bsopack||2014-08-19|Obsolete due to husky-*-devel => husky-* migration news/husky-hptkill||2014-08-19|Obsolete due to husky-*-devel => husky-* migration news/husky-hptsqfix||2014-08-19|Obsolete due to husky-*-devel => husky-* migration news/husky-hpucode||2014-08-19|Obsolete due to husky-*-devel => husky-* migration news/husky-msged||2014-08-19|Obsolete due to husky-*-devel => husky-* migration news/husky-nltools||2014-08-19|Obsolete due to husky-*-devel => husky-* migration net/rsmb|net/mosquitto|2014-08-19|Superseded by net/mosquitto deskutils/horde3-hermes||2014-08-20|Has expired: EOL in April 2012 deskutils/horde3-klutz||2014-08-20|Has expired: EOL in April 2012 deskutils/horde3-kronolith||2014-08-20|Has expired: EOL in April 2012 deskutils/horde3-mnemo||2014-08-20|Has expired: EOL in April 2012 devel/horde3-chora||2014-08-20|Has expired: EOL in April 2012 ftp/horde3-gollem||2014-08-20|Has expired: EOL in April 2012 games/linux-steam||2014-08-20|Has expired: Unmaintained interactive port games/linux-ut2004-demo||2014-08-20|Has expired: Unmaintained restricted ancient demo mail/horde3-dimp||2014-08-20|Has expired: EOL in April 2012 mail/horde3-forwards||2014-08-20|Has expired: EOL in April 2012 mail/horde3-ingo||2014-08-20|Has expired: EOL in April 2012 mail/horde3-mimp||2014-08-20|Has expired: EOL in April 2012 mail/horde3-vacation||2014-08-20|Has expired: EOL in April 2012 net-mgmt/horde3-nic||2014-08-20|Has expired: EOL in April 2012 net-mgmt/nocol||2014-08-20|Has expired: Unmaintained interactive port net-mgmt/ourmon||2014-08-20|Has expired: Unmaintained interactive port net/wowzamediaserverpro||2014-08-20|Has expired: Unmaintained interactive port news/p5-NNML||2014-08-20|Has expired: Unmaintained interactive port print/dvips||2014-08-20|Has expired: Unmaintained interactive port print/xdvi||2014-08-20|Has expired: Unmaintained interactive port security/horde3-jeta||2014-08-20|Has expired: EOL in April 2012 security/hunch||2014-08-20|Has expired: Likely unused interactive port www/horde3-ansel||2014-08-20|Has expired: EOL in April 2012 www/horde3-meta||2014-08-20|Has expired: EOL in April 2012 www/horde3-passwd||2014-08-20|Has expired: EOL in April 2012 www/horde3-trean||2014-08-20|Has expired: EOL in April 2012 www/wwwcount||2014-08-20|Has expired: Ancient interactive port mail/horde3-turba||2014-08-20|Has expired: EOL in April 2012 deskutils/horde3-nag||2014-08-20|Has expired: EOL in April 2012 devel/horde3-whups||2014-08-20|Has expired: EOL in April 2012 mail/horde3-imp||2014-08-20|Has expired: EOL in April 2012 www/horde3-base||2014-08-20|Has expired: EOL in April 2012 print/tex-omegaware-old||2014-08-22|Deprecated in favor of print/tex-aleph databases/pg_filedump||2014-08-22|Has expired: Broken for more than 6 months devel/svnmerge||2014-08-22|Has expired: Broken for more than 6 months net-mgmt/circe||2014-08-22|Has expired: Broken for more than 6 months print/latex-aa||2014-08-22|Has expired: Broken for more than 6 months textproc/rast||2014-08-22|Has expired: Broken for more than 6 months www/abyssws||2014-08-22|Has expired: Broken for more than 6 months www/docebo||2014-08-22|Has expired: Not maintained upstream devel/rubygem-railsless-deploy||2014-08-22|Removed: Obsolete, Capistrano 3 does not ship with any Railsisms and is better than Capistrano 2 and railsless-deploy lang/gcc410|lang/gcc5|2014-08-22|Renamed to GCC 5 upstream security/pam_abl||2014-08-24|Has expired: Newer version requires large number of hacks, not worth the effort www/rubygem-feedzirra|www/rubygem-feedjira|2014-08-24|Has expired: Project renamed upstream, see www/rubygem-feedjira devel/picosat|math/picosat|2014-08-25|More appropriate primary category devel/py-pycosat|math/py-pycosat|2014-08-25|More appropriate primary category games/bomns3|games/3omns|2014-08-26|Has expired: Development ceased, use 3omns misc/rubygem-mime-types117|misc/rubygem-mime-types1|2014-08-26|Renamed to properly reflect version devel/rubygem-json146|devel/rubygem-json|2014-08-28|Has expired: Old version no longer required by dependencies archivers/rubygem-bzip2|archivers/rubygem-bzip2-ruby|2014-08-29|Rename to match our rubygem- port naming ports-mgmt/pkg_add_it||2014-08-30|Has expired: Does not support pkgng print/dviselect|print/texlive-base|2014-08-30|Use print/texlive-base instead chinese/acroread8-zh_CN||2014-08-30|Deprecated: many security issues are reported and Adobe no longer actively supports Adobe Reader for Unix chinese/acroread8-zh_TW||2014-08-30|Deprecated: many security issues are reported and Adobe no longer actively supports Adobe Reader for Unix french/acroread8||2014-08-30|Deprecated: many security issues are reported and Adobe no longer actively supports Adobe Reader for Unix french/acroread9||2014-08-30|Deprecated: many security issues are reported and Adobe no longer actively supports Adobe Reader for Unix german/acroread8||2014-08-30|Deprecated: many security issues are reported and Adobe no longer actively supports Adobe Reader for Unix german/acroread9||2014-08-30|Deprecated: many security issues are reported and Adobe no longer actively supports Adobe Reader for Unix japanese/acroread8||2014-08-30|Deprecated: many security issues are reported and Adobe no longer actively supports Adobe Reader for Unix japanese/acroread9||2014-08-30|Deprecated: many security issues are reported and Adobe no longer actively supports Adobe Reader for Unix korean/acroread8||2014-08-30|Deprecated: many security issues are reported and Adobe no longer actively supports Adobe Reader for Unix portuguese/acroread8||2014-08-30|Deprecated: many security issues are reported and Adobe no longer actively supports Adobe Reader for Unix print/acroread8||2014-08-30|Deprecated: many security issues are reported and Adobe no longer actively supports Adobe Reader for Unix print/acroread9||2014-08-30|Deprecated: many security issues are reported and Adobe no longer actively supports Adobe Reader for Unix print/acroreadwrapper||2014-08-30|Deprecated: many security issues are reported and Adobe no longer actively supports Adobe Reader for Unix print/dk-acroread8||2014-08-30|Deprecated: many security issues are reported and Adobe no longer actively supports Adobe Reader for Unix print/es-acroread8||2014-08-30|Deprecated: many security issues are reported and Adobe no longer actively supports Adobe Reader for Unix print/fi-acroread8||2014-08-30|Deprecated: many security issues are reported and Adobe no longer actively supports Adobe Reader for Unix print/it-acroread8||2014-08-30|Deprecated: many security issues are reported and Adobe no longer actively supports Adobe Reader for Unix print/nl-acroread8||2014-08-30|Deprecated: many security issues are reported and Adobe no longer actively supports Adobe Reader for Unix print/no-acroread8||2014-08-30|Deprecated: many security issues are reported and Adobe no longer actively supports Adobe Reader for Unix print/sv-acroread8||2014-08-30|Deprecated: many security issues are reported and Adobe no longer actively supports Adobe Reader for Unix net-p2p/p5-Net-DirectConnect-TigerHash||2014-08-31|Broken for many months and security/p5-Crypt-RHash is a suitable replacement games/childsplay_plugins||2014-08-31|Plugins package is no longer created for new versions of childsplay print/tex-texmflocal||2014-08-31|Removed: no longer required for TeXLive audio/emu10kx||2014-09-01|Not staged audio/festvox-us1-mbrola||2014-09-01|Not staged audio/festvox-us2-mbrola||2014-09-01|Not staged audio/festvox-us3-mbrola||2014-09-01|Not staged audio/ipod-sharp||2014-09-01|Not staged audio/linux-musicipserver||2014-09-01|Not staged audio/liquidsoap||2014-09-01|Not staged benchmarks/spec-sfs||2014-09-01|Not staged biology/blast||2014-09-01|Not staged biology/embassy||2014-09-01|Not staged cad/scv||2014-09-01|Not staged cad/systemc||2014-09-01|Not staged chinese/cmexfonts||2014-09-01|Not staged chinese/cwtex||2014-09-01|Not staged chinese/hanzim||2014-09-01|Not staged chinese/miniChinput||2014-09-01|Not staged chinese/moefonts-cid||2014-09-01|Not staged chinese/msttf||2014-09-01|Not staged chinese/pine4||2014-09-01|Not staged chinese/xsim||2014-09-01|Not staged chinese/zhcon||2014-09-01|Not staged comms/gammu-devel||2014-09-01|Not staged databases/cyrus-imspd||2014-09-01|Not staged databases/db4o-mono||2014-09-01|Not staged databases/dbXML||2014-09-01|Not staged databases/exist||2014-09-01|Not staged databases/flare||2014-09-01|Not staged databases/hk_classes||2014-09-01|Not staged databases/lsdb||2014-09-01|Not staged databases/msql3||2014-09-01|Not staged databases/mysqlcppapi||2014-09-01|Not staged databases/ocaml-pgocaml||2014-09-01|Not staged databases/pear-Doctrine12||2014-09-01|Not staged databases/ruby-msql||2014-09-01|Not staged databases/ruby-oci8||2014-09-01|Not staged deskutils/adesklets||2014-09-01|Not staged deskutils/org-mode.el||2014-09-01|Not staged deskutils/planner.el||2014-09-01|Not staged deskutils/remember.el||2014-09-01|Not staged devel/asdlgen||2014-09-01|Not staged devel/ats-contrib-testing||2014-09-01|Not staged devel/e4graph||2014-09-01|Not staged devel/eclipse-eclemma||2014-09-01|Not staged devel/elib||2014-09-01|Not staged devel/entity||2014-09-01|Not staged devel/flowdesigner||2014-09-01|Not staged devel/gjstest||2014-09-01|Not staged devel/jzmq||2014-09-01|Not staged devel/libslave||2014-09-01|Not staged devel/linux-kmod-compat||2014-09-01|Not staged devel/ml-doc||2014-09-01|Not staged devel/nemiver||2014-09-01|Not staged devel/ocaml-event||2014-09-01|Not staged devel/ocamlweb||2014-09-01|Not staged devel/p4db||2014-09-01|Not staged devel/p5-Alzabo-GUI-Mason||2014-09-01|Not staged devel/php-java-bridge||2014-09-01|Not staged devel/pmk||2014-09-01|Not staged devel/pure-gen||2014-09-01|Not staged devel/ruby-amstd||2014-09-01|Not staged devel/ruby-avl||2014-09-01|Not staged devel/ruby-robjectteam||2014-09-01|Not staged devel/sfslite-dbg||2014-09-01|Not staged devel/sfslite-noopt||2014-09-01|Not staged devel/sfslite||2014-09-01|Not staged devel/sml_tk||2014-09-01|Not staged devel/stlport||2014-09-01|Not staged devel/sunterlib||2014-09-01|Not staged devel/tide||2014-09-01|Not staged devel/uppaal||2014-09-01|Not staged devel/ustl||2014-09-01|Not staged devel/vtg||2014-09-01|Not staged dns/poweradmin||2014-09-01|Not staged editors/color-mate||2014-09-01|Not staged editors/gnuserv||2014-09-01|Not staged editors/jext||2014-09-01|Not staged editors/komodo-ide||2014-09-01|Not staged editors/setedit||2014-09-01|Not staged editors/softmaker-office||2014-09-01|Not staged editors/textedit||2014-09-01|Not staged emulators/its||2014-09-01|Not staged emulators/linux-geepee32||2014-09-01|Not staged emulators/linux-systemsimcell||2014-09-01|Not staged emulators/psim-freebsd||2014-09-01|Not staged emulators/vMac||2014-09-01|Not staged finance/opentaxsolver||2014-09-01|Not staged french/facturier||2014-09-01|Not staged games/actx||2014-09-01|Not staged games/atitd||2014-09-01|Not staged games/avp-demo||2014-09-01|Not staged games/linux-sof||2014-09-01|Not staged games/quake3-freezetag||2014-09-01|Not staged games/rftg||2014-09-01|Not staged german/manpages||2014-09-01|Not staged graphics/Cgraph||2014-09-01|Not staged graphics/glide3||2014-09-01|Not staged graphics/ivtools||2014-09-01|Not staged graphics/linux_glide||2014-09-01|Not staged graphics/mingplot||2014-09-01|Not staged graphics/orca||2014-09-01|Not staged graphics/php5-chartdirector||2014-09-01|Not staged graphics/ruby-rmagick||2014-09-01|Not staged graphics/uDrawGraph||2014-09-01|Not staged graphics/visionworkbench||2014-09-01|Not staged irc/bobot++||2014-09-01|Not staged japanese/flex-sdk||2014-09-01|Not staged japanese/gqmpeg||2014-09-01|Not staged japanese/ja6||2014-09-01|Not staged japanese/lambdamoo||2014-09-01|Not staged japanese/makejvf||2014-09-01|Not staged japanese/mell||2014-09-01|Not staged japanese/mendexk-euc||2014-09-01|Not staged japanese/platex-japanese||2014-09-01|Not staged japanese/postgresql82-man||2014-09-01|Not staged japanese/prime-el||2014-09-01|Not staged japanese/rbnamazu||2014-09-01|Not staged java/jai-imageio||2014-09-01|Not staged java/jboss5||2014-09-01|Not staged java/jc||2014-09-01|Not staged java/poseidon||2014-09-01|Not staged lang/Sather||2014-09-01|Not staged lang/gnustep-guile||2014-09-01|Not staged lang/hiphop-php||2014-09-01|Not staged lang/lush||2014-09-01|Not staged lang/metaocaml||2014-09-01|Not staged lang/mpd||2014-09-01|Not staged lang/ocaml-camlidl||2014-09-01|Not staged lang/ocaml-mode.el||2014-09-01|Not staged lang/ocs||2014-09-01|Not staged lang/oorexx||2014-09-01|Not staged lang/rakudo||2014-09-01|Not staged lang/sml-mode.el||2014-09-01|Not staged lang/sr||2014-09-01|Not staged lang/t3x||2014-09-01|Not staged lang/xds-c||2014-09-01|Not staged lang/xds||2014-09-01|Not staged lang/xotcl||2014-09-01|Not staged mail/elm+ME||2014-09-01|Not staged mail/emh||2014-09-01|Not staged mail/extmail||2014-09-01|Not staged mail/extman||2014-09-01|Not staged mail/ezmlm-web||2014-09-01|Not staged mail/firemime||2014-09-01|Not staged mail/firepay||2014-09-01|Not staged mail/ftrack||2014-09-01|Not staged mail/ilohamail||2014-09-01|Not staged mail/majordomo||2014-09-01|Not staged mail/p3scan||2014-09-01|Not staged mail/popd||2014-09-01|Not staged mail/popper||2014-09-01|Not staged mail/postfix-gps||2014-09-01|Not staged mail/postfix28||2014-09-01|Not staged mail/postfix29||2014-09-01|Not staged mail/postpals||2014-09-01|Not staged mail/premail||2014-09-01|Not staged mail/qmail-scanner1||2014-09-01|Not staged mail/qmail-scanner||2014-09-01|Not staged mail/qscan||2014-09-01|Not staged mail/quickml||2014-09-01|Not staged mail/rabl_client||2014-09-01|Not staged mail/rabl_server||2014-09-01|Not staged mail/relay-ctrl||2014-09-01|Not staged mail/reply-o-matic||2014-09-01|Not staged mail/sccmilter||2014-09-01|Not staged mail/softfail||2014-09-01|Not staged mail/spmfilter-spamassassin||2014-09-01|Not staged mail/synonym||2014-09-01|Not staged mail/uebimiau||2014-09-01|Not staged mail/vm-pop3d||2014-09-01|Not staged mail/vm||2014-09-01|Not staged mail/wmpop3lb||2014-09-01|Not staged mail/xf-spf||2014-09-01|Not staged math/atlas-devel||2014-09-01|Not staged math/bihar||2014-09-01|Not staged math/itl||2014-09-01|Not staged math/javanns||2014-09-01|Not staged math/javaview||2014-09-01|Not staged math/jsmath-fonts-sprite||2014-09-01|Not staged math/jsmath||2014-09-01|Not staged math/kash3||2014-09-01|Not staged math/matrix||2014-09-01|Not staged math/sdpa-gmp||2014-09-01|Not staged math/sedumi||2014-09-01|Not staged math/unixstat||2014-09-01|Not staged misc/amanda25-client||2014-09-01|Not staged misc/amanda25-server||2014-09-01|Not staged misc/amanda26-client||2014-09-01|Not staged misc/amanda26-server||2014-09-01|Not staged misc/amanda32-client||2014-09-01|Not staged misc/amanda32-server||2014-09-01|Not staged misc/callid||2014-09-01|Not staged misc/color-theme.el||2014-09-01|Not staged misc/dotfile||2014-09-01|Not staged misc/libhome||2014-09-01|Not staged misc/mshell||2014-09-01|Not staged misc/quranref||2014-09-01|Not staged misc/tet||2014-09-01|Not staged misc/xfce4-artwork||2014-09-01|Not staged multimedia/clive1||2014-09-01|Not staged multimedia/mplayerxp||2014-09-01|Not staged multimedia/tunapie||2014-09-01|Not staged net-im/gyach||2014-09-01|Not staged net-im/iserverd||2014-09-01|Not staged net-im/jabber-pyaim||2014-09-01|Not staged net-im/komclean||2014-09-01|Not staged net-im/libjingle||2014-09-01|Not staged net-im/linpopup||2014-09-01|Not staged net-mgmt/argus-monitor||2014-09-01|Not staged net-mgmt/aspathtree||2014-09-01|Not staged net-mgmt/bigsister||2014-09-01|Not staged net-mgmt/cisco_conf||2014-09-01|Not staged net-mgmt/fruity||2014-09-01|Not staged net-mgmt/ifgraph||2014-09-01|Not staged net-mgmt/ipacco||2014-09-01|Not staged net-mgmt/macroscope||2014-09-01|Not staged net-mgmt/nagios-check_kumofs||2014-09-01|Not staged net-mgmt/nagios-portaudit||2014-09-01|Not staged net-mgmt/nagios-silfreed-plugins||2014-09-01|Not staged net-mgmt/nagiostat||2014-09-01|Not staged net-mgmt/netams-front||2014-09-01|Not staged net-mgmt/ramond||2014-09-01|Not staged net-mgmt/rancid-devel||2014-09-01|Not staged net-mgmt/satellite||2014-09-01|Not staged net-mgmt/wide-dhcp||2014-09-01|Not staged net-mgmt/yabm||2014-09-01|Not staged net-mgmt/zenpack-checkping||2014-09-01|Not staged net-mgmt/zenpack-dellmon||2014-09-01|Not staged net-mgmt/zenpack-deviceadvdetail||2014-09-01|Not staged net-mgmt/zenpack-devicesearch||2014-09-01|Not staged net-mgmt/zenpack-grap||2014-09-01|Not staged net-mgmt/zenpack-interfacegraphs||2014-09-01|Not staged net-mgmt/zenpack-libvirt||2014-09-01|Not staged net-mgmt/zenpack-macreport||2014-09-01|Not staged net-p2p/azureus2||2014-09-01|Not staged net-p2p/linux-jigdo||2014-09-01|Not staged net-p2p/mldonkey-perlreactor||2014-09-01|Not staged net-p2p/mldonkey-urlslave||2014-09-01|Not staged net-p2p/museekplus||2014-09-01|Not staged net-p2p/opennap||2014-09-01|Not staged net-p2p/solidcoin||2014-09-01|Not staged net-p2p/teknap||2014-09-01|Not staged net-p2p/vhcp||2014-09-01|Not staged net/DarwinStreamingServer||2014-09-01|Not staged net/acx100||2014-09-01|Not staged net/bcusdk-eibd||2014-09-01|Not staged net/blam||2014-09-01|Not staged net/bld||2014-09-01|Not staged net/click||2014-09-01|Not staged net/cnet||2014-09-01|Not staged net/cnupm||2014-09-01|Not staged net/ct||2014-09-01|Not staged net/entitymib||2014-09-01|Not staged net/freedbd||2014-09-01|Not staged net/frickin||2014-09-01|Not staged net/hawknl-devel||2014-09-01|Not staged net/hawknl||2014-09-01|Not staged net/heybuddy||2014-09-01|Not staged net/ipa_ipfw||2014-09-01|Not staged net/iscsi-target||2014-09-01|Not staged net/kojoney||2014-09-01|Not staged net/libtcp4u||2014-09-01|Not staged net/mediaproxy||2014-09-01|Not staged net/mknbi||2014-09-01|Not staged net/mmucl||2014-09-01|Not staged net/ncplib||2014-09-01|Not staged net/ng_daphne||2014-09-01|Not staged net/openam||2014-09-01|Not staged net/openmcu||2014-09-01|Not staged net/openser||2014-09-01|Not staged net/pfflowd||2014-09-01|Not staged net/quagga-re||2014-09-01|Not staged net/rexx-sock||2014-09-01|Not staged net/ris||2014-09-01|Not staged net/rshell||2014-09-01|Not staged net/samba4wins||2014-09-01|Not staged net/ser||2014-09-01|Not staged net/silc-client||2014-09-01|Not staged net/silc-irssi-plugin||2014-09-01|Not staged net/silc-server||2014-09-01|Not staged net/skyfish||2014-09-01|Not staged net/skystar2||2014-09-01|Not staged net/tac_plus-libradius||2014-09-01|Not staged net/ushare||2014-09-01|Not staged net/v6eval||2014-09-01|Not staged net/vchat||2014-09-01|Not staged net/vserver||2014-09-01|Not staged net/wire||2014-09-01|Not staged net/wired-tracker||2014-09-01|Not staged net/wired||2014-09-01|Not staged net/xbone||2014-09-01|Not staged net/xipdump||2014-09-01|Not staged net/xorp-devel||2014-09-01|Not staged palm/iSiloXC||2014-09-01|Not staged palm/py-synce-librapi2||2014-09-01|Not staged palm/py-synce-librra||2014-09-01|Not staged palm/synce-librapi2||2014-09-01|Not staged palm/synce-librra||2014-09-01|Not staged ports-mgmt/bxpkg||2014-09-01|Not staged ports-mgmt/pkgfe||2014-09-01|Not staged ports-mgmt/prhistory||2014-09-01|Not staged print/bophook||2014-09-01|Not staged print/examplep||2014-09-01|Not staged print/latex-acm||2014-09-01|Not staged print/latex-auto-greek||2014-09-01|Not staged print/latex-timing||2014-09-01|Not staged print/latex||2014-09-01|Not staged print/pdfcolorsplit||2014-09-01|Not staged print/pdq||2014-09-01|Not staged print/phppdflib||2014-09-01|Not staged print/ruby-panda||2014-09-01|Not staged print/scribus-devel||2014-09-01|Not staged russian/libcyrillic||2014-09-01|Not staged russian/prawda||2014-09-01|Not staged russian/pscyr||2014-09-01|Not staged russian/tac+ia||2014-09-01|Not staged science/2dhf||2014-09-01|Not staged science/dtiquery||2014-09-01|Not staged science/elmer-hutiter||2014-09-01|Not staged science/elmerpost||2014-09-01|Not staged science/g3data||2014-09-01|Not staged science/gamess||2014-09-01|Not staged science/minc||2014-09-01|Not staged science/psi3||2014-09-01|Not staged science/x11iraf||2014-09-01|Not staged science/xmds||2014-09-01|Not staged security/bioapi||2014-09-01|Not staged security/bsp_upektfmess||2014-09-01|Not staged security/distcache-devel||2014-09-01|Not staged security/mosref||2014-09-01|Not staged security/openvpn-beta||2014-09-01|Not staged security/pam_bsdbioapi||2014-09-01|Not staged security/php-Auth_OpenID2||2014-09-01|Not staged security/php-Auth_OpenID||2014-09-01|Not staged security/php-openid-ldap||2014-09-01|Not staged security/scannedonly||2014-09-01|Not staged security/tinysu||2014-09-01|Not staged sysutils/asapm||2014-09-01|Not staged sysutils/asr-utils||2014-09-01|Not staged sysutils/be_agent||2014-09-01|Not staged sysutils/bubblemon-dockapp||2014-09-01|Not staged sysutils/clockspeed-conf||2014-09-01|Not staged sysutils/comconsole||2014-09-01|Not staged sysutils/comiccron||2014-09-01|Not staged sysutils/contool||2014-09-01|Not staged sysutils/cromwell||2014-09-01|Not staged sysutils/cvsweb-converters||2014-09-01|Not staged sysutils/eroaster||2014-09-01|Not staged sysutils/freqsdwn||2014-09-01|Not staged sysutils/gnomebaker||2014-09-01|Not staged sysutils/ispman||2014-09-01|Not staged sysutils/jailuser||2014-09-01|Not staged sysutils/linux-afaapps||2014-09-01|Not staged sysutils/netident||2014-09-01|Not staged sysutils/news||2014-09-01|Not staged sysutils/nut22||2014-09-01|Not staged sysutils/nvtv||2014-09-01|Not staged sysutils/penv||2014-09-01|Not staged sysutils/pmap||2014-09-01|Not staged sysutils/replicant||2014-09-01|Not staged sysutils/sbniconfig||2014-09-01|Not staged sysutils/upsd||2014-09-01|Not staged sysutils/wmapm||2014-09-01|Not staged sysutils/xsi||2014-09-01|Not staged textproc/ats-contrib-parcomb||2014-09-01|Not staged textproc/coco||2014-09-01|Not staged textproc/lemmatizer2||2014-09-01|Not staged textproc/openvanilla-modules||2014-09-01|Not staged textproc/publican||2014-09-01|Not staged textproc/ruby-html-fillinform||2014-09-01|Not staged textproc/ruby-html-template||2014-09-01|Not staged textproc/sgmltools-lite||2014-09-01|Not staged textproc/sml-fxp||2014-09-01|Not staged textproc/tei-guidelines-p3||2014-09-01|Not staged textproc/tei-p3||2014-09-01|Not staged vietnamese/vntex||2014-09-01|Not staged vietnamese/vnxfonts||2014-09-01|Not staged vietnamese/xvnkb||2014-09-01|Not staged www/aria||2014-09-01|Not staged www/aswedit||2014-09-01|Not staged www/bk2site||2014-09-01|Not staged www/bluefish-devel||2014-09-01|Not staged www/bugmenot-firefox||2014-09-01|Not staged www/cacheboy16||2014-09-01|Not staged www/cakephp12||2014-09-01|Not staged www/cas||2014-09-01|Not staged www/dokeos||2014-09-01|Not staged www/dwoo||2014-09-01|Not staged www/elog||2014-09-01|Not staged www/eyeos-themes||2014-09-01|Not staged www/eyeos||2014-09-01|Not staged www/firefox-remote||2014-09-01|Not staged www/foswiki-ModPerlEngineContrib||2014-09-01|Not staged www/free-sa||2014-09-01|Not staged www/harvest||2014-09-01|Not staged www/htmlobject||2014-09-01|Not staged www/lusca-head||2014-09-01|Not staged www/mod_auth_form||2014-09-01|Not staged www/mod_auth_mellon||2014-09-01|Not staged www/mod_ftp||2014-09-01|Not staged www/mod_log_dbd||2014-09-01|Not staged www/moodle24||2014-09-01|Not staged www/plugger-plugins-hubbe||2014-09-01|Not staged www/prado||2014-09-01|Not staged www/quixote||2014-09-01|Not staged www/ruboard||2014-09-01|Not staged www/ruby-div||2014-09-01|Not staged www/snownews||2014-09-01|Not staged www/squirm||2014-09-01|Not staged www/xapian-omega10||2014-09-01|Not staged x11-drivers/xf86-video-rdc||2014-09-01|Not staged x11-themes/bluecurve-themes||2014-09-01|Not staged x11-themes/cursor-bluecurve-theme||2014-09-01|Not staged x11-themes/gnome-bluecurve-theme||2014-09-01|Not staged x11-themes/icon-bluecurve-theme||2014-09-01|Not staged x11-themes/icons-buuf||2014-09-01|Not staged x11-themes/kde-icons-crystal-project||2014-09-01|Not staged x11-themes/kde-icons-nuovext||2014-09-01|Not staged x11-themes/kde-icons-os-k||2014-09-01|Not staged x11-themes/kde-icons-vista-inspirate||2014-09-01|Not staged x11-themes/metacity-bluecurve-theme||2014-09-01|Not staged x11-toolkits/paragui-devel||2014-09-01|Not staged x11-wm/sapphire||2014-09-01|Not staged x11-themes/gtk-bluecurve-theme||2014-09-01|Not staged biology/phd2fasta||2014-09-01|Not staged databases/kumofs||2014-09-01|Not staged devel/lxr||2014-09-01|Not staged devel/scsh-install-lib||2014-09-01|Not staged games/qix||2014-09-01|Not staged games/vdrift||2014-09-01|Not staged net-mgmt/zenpack-graphportlet||2014-09-01|Not staged www/webcalendar-devel|www/webcalendar|2014-09-04|Removed, use www/webcalendar instead devel/ruby-memoize||2014-09-06|Has expired: RubyForge shutdown May 15 2014 www/oops||2014-09-06|Development stops long ago, domain has been expired net/freeswitch-core-devel||2014-09-06|Not staged net/freeswitch-devel||2014-09-06|Not staged audio/freeswitch-sounds||2014-09-06|Not staged audio/freeswitch-music||2014-09-06|No purpose after unstaged freeswitch ports removed devel/eieio||2014-09-06|Not staged devel/semantic||2014-09-06|Not staged editors/speedbar||2014-09-06|Not staged japanese/tk80||2014-09-06|Not staged japanese/tcl80||2014-09-06|Not staged japanese/tkhonyaku||2014-09-06|Cascade removal (ja-tcl/tk80 dependency) japanese/timidity++-tcltk||2014-09-06|Cascade removal (ja-tcl/tk80 dependency) japanese/prime||2014-09-06|Not staged japanese/suikyo||2014-09-06|Not staged japanese/prime-dict||2014-09-06|Not staged japanese/scim-prime||2014-09-06|Cascade removal (japanese/prime dependency) graphics/povray31||2014-09-06|Not staged graphics/pvmpov||2014-09-06|Cascade removal (graphics/povray31) databases/firebird21-server||2014-09-06|Not staged databases/firebird21-client||2014-09-06|Not staged databases/kinterbasdb||2014-09-07|Has expired: Not staged and BROKEN databases/msql||2014-09-07|Has expired: Not staged and BROKEN multimedia/pvr250||2014-09-07|Has expired: Not staged and BROKEN multimedia/pvrxxx||2014-09-07|Has expired: Not staged and BROKEN textproc/py-4suite-xml||2014-09-07|Has expired: Not staged net/libexosip2-legacy|net/libexosip2|2014-09-07|Has expired: Superseded by net/libexosip2 net/libosip|net/libosip2|2014-09-07|Has expired: Superseded by net/libosip2 lang/caml-light||2014-09-07|Not staged devel/pybaz||2014-09-07|Obsolete, use devel/bzr instead devel/baz||2014-09-07|Unstaged, obsolete, distfiles don't exist. Use devel/bzr instead security/prelude-lml||2014-09-07|Not staged security/prelude-manager||2014-09-07|Not staged security/prelude-pflogger||2014-09-07|Not staged lang/otcl||2014-09-07|Not staged devel/tclcl||2014-09-07|Cascade removal (lang/otcl) net/nam||2014-09-07|Cascade removal (lang/otcl) net/ns||2014-09-07|Cascade removal (lang/otcl) databases/frontbase||2014-09-07|Not staged databases/p5-DBD-FrontBase||2014-09-07|Cascade removal (databases/frontbase) databases/ruby-frontbase||2014-09-07|Cascade removal (databases/frontbase) devel/flex-sdk2||2014-09-07|Not staged devel/flex_compiler_shell||2014-09-07|Cascade removal (devel/flex-sdk2) emulators/virtualbox-ose-legacy||2014-09-09|Not staged emulators/virtualbox-ose-kmod-legacy||2014-09-09|No purpose after removal of virtualbox-ose-legacy devel/arm-eabi-gcc||2014-09-09|Not staged devel/cross-gcc||2014-09-09|Not staged devel/arm-eabi-binutils||2014-09-09|No purpose after removal of arm-eabi-gcc sysutils/u-boot-beaglebone-eabi||2014-09-09|Cascade removal (devel/arm-eabi-gcc) lang/ezm3||2014-09-09|Not staged net/cvsup-without-gui||2014-09-09|Cascade removal (lang/ezm3) net/cvsupchk||2014-09-09|Cascade removal (lang/ezm3) net/cvsup||2014-09-09|Cascade removal (lang/ezm3) dns/posadis||2014-09-09|Not staged net/etherboot||2014-09-09|Not staged games/linux-savage||2014-09-09|Not staged lang/ifc||2014-09-09|Not staged japanese/rskkserv||2014-09-09|Not staged graphics/passepartout||2014-09-09|Not staged lang/scsh||2014-09-10|Not staged net-mgmt/zenoss||2014-09-10|Not staged archivers/mate-file-archiver|archivers/engrampa|2014-09-10|renamed deskutils/mate-menu-editor|deskutils/mozo|2014-09-10|renamed editors/mate-text-editor|editors/pluma|2014-09-10|renamed graphics/mate-document-viewer|graphics/atril|2014-09-10|renamed graphics/mate-image-viewer|graphics/eom|2014-09-10|renamed x11-fm/mate-file-manager|x11-fm/caja|2014-09-10|renamed x11-wm/mate-window-manager|x11-wm/marco|2014-09-10|renamed deskutils/mate-character-map||2014-09-10|removed deskutils/mate-file-manager-open-terminal||2014-09-10|removed security/libmatekeyring||2014-09-10|removed security/mate-keyring||2014-09-10|removed textproc/mate-doc-utils||2014-09-10|removed x11-toolkits/libmatewnck||2014-09-10|removed net/ruby-net-geoip|net/rubygem-geoip|2014-09-13|Has expired: Broken www/bannerfilter||2014-09-16|Depends on www/squid (v2.7) which is two years past EOL www/dansguardian||2014-09-16|Depends on www/squid (v2.7) which is two years past EOL www/dansguardian-devel||2014-09-16|Depends on www/squid (v2.7) which is two years past EOL www/videocache||2014-09-16|Depends on www/squid (v2.7) which is two years past EOL www/squid32||2014-09-16|Readed EOL on 14 August 2012 net/ruby-growl|net/rubygem-ruby-growl|2014-09-20|Renamed sysutils/moreutils-parallel|sysutils/moreutils|2014-09-20|Has expired: Use moreutils-parallel in sysutils/moreutils instead science/ruby-netcdf||2014-09-20|Has expired: Depends on deprecated math/ruby-narray x11-toolkits/ruby-fox16||2014-09-20|Has expired: RubyForge shutdown May 15 2014 math/ruby-gnuplot||2014-09-20|Has expired: Depends on deprecated math/ruby-narray science/ruby-gphys||2014-09-20|Has expired: Depends on deprecated math/ruby-narray math/ruby-fftw3||2014-09-20|Has expired: Depends on deprecated math/ruby-narray science/ruby-dcl||2014-09-20|Has expired: Depends on deprecated math/ruby-narray math/ruby-numru_misc||2014-09-20|Has expired: Depends on deprecated math/ruby-narray math/ruby-narray||2014-09-20|Has expired: RubyForge shutdown May 15 2014 textproc/ruby-liquid||2014-09-20|Has expired: RubyForge shutdown May 15 2014 comms/callsign||2014-09-20|Has expired: RubyForge shutdown May 15 2014 misc/ruby-vpim||2014-09-20|Has expired: RubyForge shutdown May 15 2014 net/ruby-ldap||2014-09-20|Has expired: RubyForge shutdown May 15 2014 devel/rubygem-echoe||2014-09-20|Has expired: Depends on deprecated rubyforge www/ruby-borges||2014-09-20|Has expired: RubyForge shutdown May 15 2014 www/ruby-fcgiwrap||2014-09-20|Has expired: RubyForge shutdown May 15 2014 www/rubygem-scrubyt||2014-09-20|Has expired: RubyForge shutdown May 15 2014 devel/ruby-multi||2014-09-20|Has expired: RubyForge shutdown May 15 2014 databases/ruby-dbd_sqlite3|databases/rubygem-dbd-sqlite3|2014-09-20|Replaced by rubygem-dbd-sqlite math/ruby-gsl||2014-09-20|Has expired: RubyForge shutdown May 15 2014 security/ruby-gpgme||2014-09-20|Has expired: RubyForge shutdown May 15 2014 multimedia/vodcatcher||2014-09-20|Has expired: RubyForge shutdown May 15 2014 japanese/ruby-ming||2014-09-20|Has expired: RubyForge shutdown May 15 2014 devel/ruby-statgrab||2014-09-20|Has expired: RubyForge shutdown May 15 2014 security/ruby-crypt||2014-09-20|Has expired: RubyForge shutdown May 15 2014 sysutils/philesight||2014-09-20|Has expired: Depends on deprecated devel/ruby-locale2 multimedia/podcatcher||2014-09-20|Has expired: RubyForge shutdown May 15 2014 audio/ruby-mp3info||2014-09-20|Has expired: RubyForge shutdown May 15 2014 multimedia/ruby-flvtool2||2014-09-20|Has expired: RubyForge shutdown May 15 2014 audio/ruby-freedb||2014-09-20|Has expired: RubyForge shutdown May 15 2014 graphics/ruby-ming||2014-09-20|Has expired: RubyForge shutdown May 15 2014 devel/ruby-locale2||2014-09-20|Has expired: RubyForge shutdown May 15 2014 devel/rubygem-rubyforge||2014-09-20|Has expired: RubyForge shutdown May 15 2014 databases/ruby-dbd_odbc|databases/rubygem-dbd-odbc|2014-09-20|Replaced by rubygem-dbd-odbc devel/ruby-fastri||2014-09-20|Has expired: RubyForge shutdown May 15 2014 devel/ri-emacs||2014-09-20|Has expired: RubyForge shutdown May 15 2014 security/p5-openxpki-client-html-mason||2014-09-20|Has expired: security/p5-openxpki-0.15+ abandoned Mason UI technology in favor of FastCGI math/ruby-narray_miss||2014-09-20|Removed, depended on deleted math/ruby-narray games/gnomechess|games/gnome-chess|2014-09-20|Renamed to match port name www/ruby-fcgi||2014-09-20|Has expired: RubyForge shutdown May 15 2014 databases/ruby-dbi|databases/rubygem-dbi|2014-09-21|Replaced by rubygem-dbi databases/ruby-dbd_mysql|databases/rubygem-dbd-mysql|2014-09-21|Replaced by rubygem-dbd-mysql databases/ruby-dbd_pg|databases/rubygem-dbd-pg|2014-09-21|Replaced by rubygem-dbd-pg databases/ruby-dbd_sqlite|databases/rubygem-dbd-sqlite3|2014-09-21|Replaced by rubygem-dbd-sqlite3 databases/ruby-dbd-sqlite||2014-09-21|Dysfunctional textproc/ruby-amatch|textproc/rubygem-amatch|2014-09-21|Replaced by textproc/rubygem-amatch databases/rubygem-aspectr|devel/rubygem-aspectr|2014-09-21|Change category graphics/libggi||2014-09-22|Has expired: Unmaintained upstream devel/libgii||2014-09-22|Has expired: Unmaintained upstream graphics/fpc-ggi||2014-09-22|Has expired: Unmaintained upstream graphics/linux-sdl_ttf||2014-09-22|Replaced by graphics/linux-*-sdl_ttf www/mediawiki121||2014-09-23|Has expired: Not maintained upstream sysutils/rubygem-chef-expander||2014-09-25|Has expired: Depends on broken rubygem-dep_selector sysutils/rubygem-chef-server||2014-09-25|Has expired: Depends on broken rubygem-dep_selector sysutils/rubygem-chef-solr||2014-09-25|Has expired: Depends on broken rubygem-dep_selector www/rubygem-chef-server-webui||2014-09-25|Has expired: Depends on broken rubygem-dep_selector www/rubygem-chef-server-api||2014-09-25|Has expired: Depends on broken rubygem-dep_selector databases/freetds-msdblib||2014-09-27|No longer required, now covered by databases/freetds sysutils/rubgem-bundler_ext|sysutils/rubygem-bundler_ext|2014-09-27|Renamed archivers/rpm5||2014-09-28|Has expired: Broken for more than 6 months devel/cocaine-core||2014-09-28|Has expired: Broken for more than 6 months graphics/ruby-tgif||2014-09-28|Has expired: Broken for more than 6 months net/libnet10||2014-09-30|Has expired: Superseded by net/libnet net/despoof||2014-09-30|Has expired: Depends on expired net/libnet10 sysutils/gpkgdep||2014-09-30|Has expired: Requires old pkg_info security/vida||2014-09-30|Has expired: Depends on expired net/libnet10 net/nemesis||2014-09-30|Has expired: Depends on expired net/libnet10 net-mgmt/sing||2014-09-30|Has expired: Depends on expired net/libnet10 net-mgmt/gps||2014-09-30|Has expired: Depends on expired net/libnet10 net/ttlscan||2014-09-30|Has expired: Depends on expired net/libnet10 security/zombiezapper||2014-09-30|Has expired: Depends on expired net/libnet10 dns/dnshijacker||2014-09-30|Has expired: Depends on expired net/libnet10 net/xboxproxy||2014-09-30|Has expired: Depends on expired net/libnet10 net-mgmt/scdp||2014-09-30|Has expired: Depends on expired net/libnet10 net-mgmt/angst||2014-09-30|Has expired: Depends on expired net/libnet10 security/py-otr||2014-09-30|Has expired: Abandoned upstream net-p2p/cdonkey||2014-09-30|Has expired: depends on deprecated db41 version www/rubygem-puma16||2014-10-02|Has expired: Old version no longer needed x11-toolkits/gnome-desktop-sharp20||2014-10-02|Removed, no users and depends on gnome-panel which will be removed x11-toolkits/eel||2014-10-03|Removed, doesn't build with updated gnome-desktop deskutils/gnome-main-menu||2014-10-03|Removed, because x11-toolkits/eel was removed editors/mlview||2014-10-03|Removed, because x11-toolkits/eel was removed textproc/gnome-translate||2014-10-03|Removed, because x11-toolkits/eel was removed x11/avant-window-navigator-gnome||2014-10-03|Removed doesn't build with update gnome-desktop www/moodle25||2014-10-05|Has expired: Upstream support ended astro/openmap||2014-10-07|Ten years out of date ports-mgmt/portaudit||2014-10-13|portaudit expired when pkg_tools did, use pkg audit ports-mgmt/portaudit-db||2014-10-13|portaudit expired ports-mgmt/kports-qt4||2014-10-13|portaudit expired net-mgmt/check_snmp_pkgvuln||2014-10-13|portaudit expired mail/p5-Email-Stuff|mail/p5-Email-Stuffer|2014-10-15|Has expired: Deprecated in favour of mail/p5-Email-Stuffer security/krb5-maint|security/krb5-111|2014-10-16|MIT now supports two maintenance releases of which 1.11 is the older of the two devel/rubygem-rspec-spies||2014-10-17|Has expired: Same syntax available in rspec 2.14 and later graphics/libfreehand00|graphics/libfreehand|2014-10-17|Replaced by newer version graphics/libcdr|graphics/libcdr01|2014-10-17|Replaced by newer version print/libmspub|print/libmspub01|2014-10-17|Replaced by newer version devel/py-olefileio_pl|devel/py-olefile|2014-10-17|Upstream name change audio/mad||2014-10-20|Directly use audio/libmad or audio/madplay mail/dspam-devel|mail/dspam|2014-10-20|Merged into mail/dspam dns/bind98|dns/bind99|2014-10-21|BIND 9.8 EOL dns/powerdns-devel|dns/powerdns|2014-10-24|Older than dns/powerdns and no longer needed www/mod_authz_unixgroup|www/mod_authz_unixgroup22|2014-10-26|Reflect Apache version in portsdir lang/kroc||2014-10-28|Has expired: Broken for more than 6 months net/slirp||2014-10-28|Has expired: Broken for more than 6 months www/typo347||2014-10-30|Has expired: Upgrade to www/typo3 or www/typo3-lts deskutils/babytrans||2014-10-31|Has expired: Abandonware, dictionaries unavailable www/rt38||2014-10-31|Has expired: Has expired: End of Life March 2014 textproc/libmwaw|textproc/libmwaw03|2014-10-31|Replaced by newer version databases/pecl-yac|devel/pecl-yac|2014-11-04|Duplicate port devel/qt5-qmldevtools||2014-11-05|Merged into lang/qt5-qml math/elmer-umfpack|cad/elmerfem|2014-11-07|Has expired: Obsoleted by cad/elmerfem science/elmer-eio|cad/elmerfem|2014-11-07|Has expired: Obsoleted by cad/elmerfem science/elmer-matc|cad/elmerfem|2014-11-07|Has expired: Obsoleted by cad/elmerfem science/elmer-meshgen2d|cad/elmerfem|2014-11-07|Has expired: Obsoleted by cad/elmerfem science/elmergrid|cad/elmerfem|2014-11-07|Has expired: Obsoleted by cad/elmerfem security/pinentry-gtk||2014-11-13|Removed: upstream ended support for GTK+ 1 audio/cuberok||2014-11-15|Has expired: Upstream development has stalled sysutils/cfengine36-rc|sysutils/cfengine36|2014-11-18|Has gone GA deskutils/gdesklets||2014-11-19|Depends on removed x11-toolkits/py-gnome-extra deskutils/gdesklets-recentlyused||2014-11-19|Depends on removed x11-toolkits/py-gnome-extra deskutils/gdesklets-starterbar||2014-11-19|Depends on removed x11-toolkits/py-gnome-extra deskutils/global-menu||2014-11-19|Depends on removed gnome-panel and incompatible with updated gnome-desktop deskutils/labyrinth||2014-11-19|Is not compatible with updated gnome-desktop deskutils/libopensync-plugin-evolution2||2014-11-19|Is not compatible with updated evolution deskutils/libopensync-plugin-evolution2-devel||2014-11-19|Is not compatible with updated evolution devel/bug-buddy||2014-11-19|No longer used in GNOME devel/gnome2-hacker-tools||2014-11-19|GNOME 2 was removed editors/gnome2-office||2014-11-19|GNOME 2 was removed games/gnomesudoku|games/gnome-sudoku|2014-11-19|Renamed to what the actualy name lang/vala-vapigen|lang/vala|2014-11-19|vapigen merged into vala mail/evolution-exchange|mail/evolution-ews|2014-11-19|Replaced by evolution-ews mail/gmail-notify||2014-11-19|Depends on removed x11-toolkits/py-gnome-extras math/gcalctool|math/gnome-calculator|2014-11-19|Project renamed misc/gnome2-reference||2014-11-19|GNOME 2 was removed misc/xmonad-log-applet||2014-11-19|Depends on removed gnome-panel net/gnome-netstatus||2014-11-19|Depends on removed gnome-panel security/seahorse-plugins||2014-11-19|Removed, not used in GNOME 3 sysutils/gnome-system-tools||2014-11-19|Depends on removed nautilus2 sysutils/tracker-client|sysutils/tracker|2014-11-19|Merged into sysutils/tracker sysutils/tracker-gnome|sysutils/tracker|2014-11-19|Merged into sysutils/tracker sysutils/tracker-libtrackergtk|sysutils/tracker|2014-11-19|Merged into sysutils/tracker www/epiphany-extensions||2014-11-19|Removed, not used in GNOME 3 www/evolution-webcal||2014-11-19|Not compatible with evolution 3 x11-clocks/gdesklets-clock||2014-11-19|Depends on removed x11-toolkits/py-gnome-extra x11-clocks/gdesklets-countdown||2014-11-19|Depends on removed x11-toolkits/py-gnome-extra x11-clocks/gdesklets-ebichuclock||2014-11-19|Depends on removed x11-toolkits/py-gnome-extra x11-toolkits/libpanelappletmm||2014-11-19|Depends on removed GNOME 2 ports x11-toolkits/py-gnome-desktop||2014-11-19|Depends on removed GNOME 2 ports x11-toolkits/py-gnome-extras||2014-11-19|Depends on removed GNOME 2 ports x11/gdesklets-tasklist||2014-11-19|Depends on removed x11-toolkits/py-gnome-extra x11/gnome-applets||2014-11-19|GNOME 2 was removed x11/gnome-panel||2014-11-19|GNOME 2 was removed x11/gnome-panel-reference||2014-11-19|GNOME 2 was removed x11/gnome-screensaver||2014-11-19|Is not compatible with updated gnome-desktop x11/gnome-swallow||2014-11-19|Removed, depends on removed gnome-panel x11/gnome2||2014-11-19|GNOME 2 was removed x11/gnome2-fifth-toe||2014-11-19|GNOME 2 was removed x11/gnome2-lite||2014-11-19|GNOME 2 was removed x11/gnome2-power-tools||2014-11-19|GNOME 2 was removed x11/xfce4-xfapplet-plugin||2014-11-19|Depends on removed gnome-panel net-im/telegram-cli||2014-11-19|Duplicate of net-im/tg emulators/wine-doors||2014-11-19|Abandonware, depends on non existing USE_GNOME components x11/gtstarter||2014-11-19|Abandonware, depends on non existing USE_GNOME components sysutils/serpentine||2014-11-19|Abandonware, depends on non existing USE_GNOME components sysutils/pessulus||2014-11-19|Abandonware, depends on non existing USE_GNOME components x11-toolkits/libzvt||2014-11-19|Abandonware, not depended on anymore net-p2p/gtkhx||2014-11-19|Does not work anymore korean/ami||2014-11-19|Does not work anymore graphics/xzgv||2014-11-19|Abandonware since at least 2008 deskutils/gtkjournal||2014-11-19|Abandonware, not working anymore deskutils/splashsetter||2014-11-19|Abandonware, useless without gnome2 editors/emacs23|editors/emacs|2014-11-19|Has expired: Unmaintained upstream, use editors/emacs net-im/tg|net-im/telegram|2014-11-20|Renamed to more specific name net-mgmt/virtinst|deskutils/virt-manager|2014-11-20|Obsoleted by deskutils/virt-manager graphics/linux-c6-gdk-pixbuf|graphics/linux-c6-gdk-pixbuf2|2014-11-24|Port renamed to align with upstream devel/libole2||2014-11-24|Abandoned upstream, incomplete, not depend on net/p5-SOAP-Transport-TCP|net/p5-SOAP-Lite|2014-11-24|Has been integrated into net/p5-SOAP-Lite www/chimera||2014-11-24|Has expired: Abandonware (last update in 1997), restrictive license devel/ecore|devel/efl|2014-11-25|Merged to devel/efl devel/ecore-file|devel/efl|2014-11-25|Merged to devel/efl devel/ecore-ipc|devel/efl|2014-11-25|Merged to devel/efl devel/ecore-main|devel/efl|2014-11-25|Merged to devel/efl devel/eet|devel/efl|2014-11-25|Merged to devel/efl devel/eina|devel/efl|2014-11-25|Merged to devel/efl devel/eio|devel/efl|2014-11-25|Merged to devel/efl graphics/ecore-evas|devel/efl|2014-11-25|Merged to devel/efl graphics/ecore-sdl|devel/efl|2014-11-25|Merged to devel/efl graphics/edje|devel/efl|2014-11-25|Merged to devel/efl graphics/ethumb|devel/efl|2014-11-25|Merged to devel/efl graphics/evas|devel/efl|2014-11-25|Merged to devel/efl graphics/evas-core|devel/efl|2014-11-25|Merged to devel/efl graphics/evas-engine-buffer|devel/efl|2014-11-25|Merged to devel/efl graphics/evas-engine-opengl|devel/efl|2014-11-25|Merged to devel/efl graphics/evas-engine-sdl|devel/efl|2014-11-25|Merged to devel/efl graphics/evas-engine-x11|devel/efl|2014-11-25|Merged to devel/efl graphics/evas-loader-bmp|devel/efl|2014-11-25|Merged to devel/efl graphics/evas-loader-eet|devel/efl|2014-11-25|Merged to devel/efl graphics/evas-loader-generic|devel/efl|2014-11-25|Merged to devel/efl graphics/evas-loader-gif|devel/efl|2014-11-25|Merged to devel/efl graphics/evas-loader-ico|devel/efl|2014-11-25|Merged to devel/efl graphics/evas-loader-jpeg|devel/efl|2014-11-25|Merged to devel/efl graphics/evas-loader-pmaps|devel/efl|2014-11-25|Merged to devel/efl graphics/evas-loader-png|devel/efl|2014-11-25|Merged to devel/efl graphics/evas-loader-psd|devel/efl|2014-11-25|Merged to devel/efl graphics/evas-loader-svg|devel/efl|2014-11-25|Merged to devel/efl graphics/evas-loader-tga|devel/efl|2014-11-25|Merged to devel/efl graphics/evas-loader-tiff|devel/efl|2014-11-25|Merged to devel/efl graphics/evas-loader-wbmp|devel/efl|2014-11-25|Merged to devel/efl graphics/evas-loader-xpm|devel/efl|2014-11-25|Merged to devel/efl lang/embryo|devel/efl|2014-11-25|Merged to devel/efl multimedia/emotion|devel/efl|2014-11-25|Merged to devel/efl net/ecore-con|devel/efl|2014-11-25|Merged to devel/efl x11/ecore-imf|devel/efl|2014-11-25|Merged to devel/efl x11/ecore-imf_evas|devel/efl|2014-11-25|Merged to devel/efl x11/ecore-input|devel/efl|2014-11-25|Merged to devel/efl x11/ecore-input_evas|devel/efl|2014-11-25|Merged to devel/efl x11/ecore-x11|devel/efl|2014-11-25|Merged to devel/efl x11/efreet|devel/efl|2014-11-25|Merged to devel/efl x11-wm/e17-module-alarm|x11-wm/e-module-alarm|2014-11-25|Renamed x11-wm/e17-module-cpu|x11-wm/e-module-cpu|2014-11-25|Renamed x11-wm/e17-module-deskshow|x11-wm/e-module-deskshow|2014-11-25|Renamed x11-wm/e17-module-diskio|x11-wm/e-module-diskio|2014-11-25|Renamed x11-wm/e17-module-everything-places|x11-wm/e-module-everything-places|2014-11-25|Renamed x11-wm/e17-module-everything-websearch|x11-wm/e-module-everything-websearch|2014-11-25|Renamed x11-wm/e17-module-forecasts|x11-wm/e-module-forecasts|2014-11-25|Renamed x11-wm/e17-module-mem|x11-wm/e-module-mem|2014-11-25|Renamed x11-wm/e17-module-mpdule|x11-wm/e-module-mpdule|2014-11-25|Renamed x11-wm/e17-module-net|x11-wm/e-module-net|2014-11-25|Renamed x11-wm/e17-module-penguins|x11-wm/e-module-penguins|2014-11-25|Renamed x11-wm/e17-module-places|x11-wm/e-module-places|2014-11-25|Renamed x11-wm/e17-module-rmb|x11-wm/e-module-rmb|2014-11-25|Renamed x11-wm/e17-module-tclock|x11-wm/e-module-tclock|2014-11-25|Renamed x11-wm/e17-module-wlan|x11-wm/e-module-wlan|2014-11-25|Renamed x11-wm/e17-modules|x11-wm/e-modules|2014-11-25|Renamed net-im/folks04||2014-11-26|Removed, no longer used after GNOME 3 merge devel/afl|security/afl|2014-11-26|Duplicate port print/latexmk|print/texlive-base|2014-11-27|Has been incorporated in TeXLive print/pdfjam|print/texlive-base|2014-11-27|Has been incorporated in TeXLive vietnamese/vnlpr||2014-11-29|Has expired: Broken for more than 6 months devel/fsmgenerator||2014-11-29|Has expired: Broken for more than 6 months graphics/multiraw||2014-11-29|Has expired: Depends on broken and deprecated graphics/dcraw-m news/fidogate-ds||2014-11-29|Has expired: Broken for more than 6 months net/py-yadis||2014-11-29|Has expired: Broken for more than 6 months textproc/ruby-diff||2014-11-29|Has expired: Broken for more than 6 months audio/cowbell||2014-11-29|Has expired: Broken for more than 6 months lang/ironpython||2014-11-29|Has expired: Broken for more than 6 months www/dpsearch||2014-11-29|Has expired: Broken for more than 6 months multimedia/y4mscaler||2014-11-29|Has expired: Broken for more than 6 months devel/rubygem-dep_selector||2014-11-29|Has expired: Broken for more than 6 months sysutils/rubygem-hiera-puppet||2014-12-01|Has expired: Has been incorporated into hiera sysutils/rubygem-hiera-json||2014-12-01|Has expired: Has been incorporated into hiera databases/memcachedb||2014-12-01|Has expired: Depends on deprecated Berkeley DB version, needs porting to DB_SITE games/djgame2||2014-12-01|Has expired: Online servers gone, game is not playable lang/clay||2014-12-01|Has expired: No development since July 2013, depends on obsolete clang-3.2 textproc/libodfgen|textproc/libodfgen01|2014-12-02|Replaced by newer version graphics/libetonyek|graphics/libetonyek01|2014-12-02|Replaced by newer version textproc/sw-hunspell|textproc/sv-hunspell|2014-12-02|Swedish is sv not sw deskutils/gnome-shell-extension-gtile||2014-12-03|Removed, doesn't work properly devel/rubygem-rb-readline||2014-12-05|Removed, not needed ports-mgmt/pib||2014-12-06|Has expired: Does not work with tcl/tk 8.4+, does not support pkgng editors/texmakerx|editors/texstudio|2014-12-06|The project has been renamed databases/postgresql93-plv8js|databases/postgresql-plv8js|2014-12-07|Breaks index when PGSQL_DEFAULT=9.3 and master port can be used for pgsql 9.3 www/twig-php||2014-12-08|Removed, as it was replaced and conflicting with www/pear-twig and www/pecl-twig textproc/xerces-c2|textproc/xerces-c3|2014-12-12|Unused, conflicting with xerces-c3 textproc/xerces-c2-devel|textproc/xerces-c3|2014-12-12|Unused, conflicting with xerces-c3 games/empire|games/vms-empire|2014-12-15|Moved to match upstream name devel/preps-gui||2014-12-15|Has expired: upstream disappeared devel/prepstools||2014-12-15|Has expired: upstream disappeared devel/llvm32||2014-12-18|Obsolete and unmaintained upstream lang/clang32||2014-12-18|Obsolete and unmaintained upstream x11-drivers/xf86-video-newport||2014-12-19|Removed: Depends on removed xorg-server 1.12 x11-drivers/xf86-video-tga||2014-12-19|Removed: Alpha support was removed in FreeBSD 7.0 x11/nvidia-driver-71||2014-12-19|Removed: Not compatible with xserver 1.14 x11/nvidia-driver-96||2014-12-19|Removed: Not compatible with xserver 1.14 www/drupal7-jailadmin||2014-12-20|Removed per author's request; unmaintained www/drupal7-vulnscan||2014-12-20|Removed per author's request; unmaintained www/neon29|www/neon|2014-12-24|Rename to reflect upstream graphics/pornview||2014-12-24|No more upstream, no more public distfile, no proper support for modern png misc/gnomehier||2014-12-25|Not needed anymore graphics/corona||2014-12-25|Abandonware, no proper support for modern png graphics/libpano12|graphics/libpano13|2014-12-25|No proper support for modern png, newer version available as libpano13 games/hex||2014-12-25|Abandonware, no support for moden graphics libraries graphics/bbrb||2014-12-25|Abandonware, depends on imlib graphics/gtkgraph||2014-12-25|Abandonware, depends on imlib graphics/imagesort||2014-12-25|Abandonware, depends on imlib graphics/picturebook||2014-12-25|Abandonware, depends on imlib graphics/show||2014-12-25|Abandonware, depends on imlib japanese/ebview|japanese/ebview-gtk2|2014-12-25|Use GTK2 version japanese/xjtext||2014-12-25|Abandonware, depends on imlib x11/peeper||2014-12-25|Abandonware, depends on imlib x11-toolkits/fpc-gnome1||2014-12-25|Depends on imlib graphics/fpc-imlib||2014-12-25|Depends on imlib graphics/imlib||2014-12-25|Does not handle modern graphics libraries games/secretmaryochronicles-music||2014-12-27|Has expired: Depends on expiring games/secretmaryochronicles x11-fm/pbi-thumbnailer||2014-12-27|Has expired: Broken for more than 6 months games/secretmaryochronicles||2014-12-27|Has expired: does not run, cegui 0.8 support still in development multimedia/ffmpeg24|multimedia/ffmpeg25|2014-12-27|ffmpeg upstream now points to 2.5.x series x11-wm/enlightenment-docs|x11-wm/e16-docs|2014-12-28|Renamed for better naming devel/py-checkmanifest|devel/py-check-manifest|2014-12-29|Use correct upstream PyPI name deskutils/xpad-current|deskutils/xpad|2014-12-30|deskutils/xpad-current is ready for prime time biology/ncbi-blast|biology/ncbi-blast+|2014-12-30|Clarify that this is blast+ and not the blast, allow for a future ncbi-blast port lang/perl5.14||2014-12-31|Has expired: Unsupported, please upgrade to a more recent version of Perl graphics/ender||2014-12-31|Has expired: Unused by EFL 1.11 graphics/enesim||2014-12-31|Has expired: Unused by EFL 1.11 graphics/etch||2014-12-31|Has expired: Unused by EFL 1.11 www/egueb||2014-12-31|Has expired: Unused by EFL 1.11 x11-wm/e17-module-comp-scale||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-eektool||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-elfe||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-empris||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-engage||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-eooorg||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-everything-aspell||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-everything-mpris||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-everything-pidgin||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-everything-shotgun||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-everything-wallpaper||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-exebuf||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-execwatch||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-flame||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-iiirk||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-itask||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-mail||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-moon||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-news||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-photo||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-rain||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-screenshot||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-slideshow||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-taskbar||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-uptime||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-weather||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-winlist-ng||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-winselector||2014-12-31|Has expired: Broken and updates aren't available x11-wm/e17-module-snow||2014-12-31|Has expired: Broken and updates aren't available biology/boinc-simap||2015-01-01|Has expired: Project shutting down, see http://boincsimap.org/boincsimap/forum_thread.php?id=88 security/openssh-portable-base||2015-01-01|Has expired: Overwrite-base option/port/pkg will be removed. There is no real need for foot-shooting devel/cedet||2015-01-01|Has expired: Fails to build, use Emacs' builtin cedet package instead devel/ecb||2015-01-01|Has expired: does not work with newer Emacs versions, use the elpa package instead devel/rubygem-little_plugger|devel/rubygem-little-plugger|2015-01-05|Rename to match our rubygem- port naming misc/nagios-base-logos||2015-01-05|Included in nagios distribution ports-mgmt/portcheckout||2015-01-06|Has expired: Uses ports cvs repo, which is long gone ports-mgmt/pkg_trackinst||2015-01-06|Has expired: Does not support pkgng, generates incorrect pkg-plist ports-mgmt/pkg_remove||2015-01-06|Has expired: Does not support pkgng ports-mgmt/pkg-orphan||2015-01-06|Has expired: Does not support pkgng ports-mgmt/p5-FreeBSD-Pkgs-FindUpdates||2015-01-06|Has expired: Depends on ports-mgmt/p5-FreeBSD-Pkgs ports-mgmt/p5-FreeBSD-Pkgs||2015-01-06|Has expired: Does not support pkgng ports-mgmt/p5-App-Pm2Port||2015-01-06|Has expired: Does not know about USES=perl, generates incorrect pkg-plist ports-mgmt/bpkg||2015-01-06|Has expired: Does not support pkgng multimedia/mplayer-fonts||2015-01-11|Obsolete port security/qca-cyrus-sasl|devel/qca|2015-01-12|Part of devel/qca now security/qca-gnupg|devel/qca|2015-01-12|Part of devel/qca now security/qca-ossl|devel/qca|2015-01-12|Part of devel/qca now games/vdrift-data||2015-01-16|vdrift engine was removed from ports four months earlier x11/rxvt-devel||2015-01-17|Has expired: No longer developed nor maintained and deprecated by x11/xvt and x11/rxvt-unicode comms/spandsp-devel|comms/spandsp|2015-01-17|Has expired: Use newer comms/spandsp multimedia/universal-media-server||2015-01-17|Has expired: RC script broken, especially prestart target www/qupzilla|www/qupzilla-qt4|2015-01-18|Renamed to differentiate from www/qupzilla-qt5 devel/p5-perlbrew|devel/p5-App-perlbrew|2015-01-19|Rename to match upstream naming devel/actor-framework|devel/caf|2015-01-19|Rename to match upstream naming textproc/py-charade||2015-01-28|Charade was merged back to textproc/py-chardet audio/qmidinet||2015-01-28|Has expired: Broken for more than 6 months audio/wmauda||2015-01-28|Has expired: Broken for more than 6 months audio/x11amp||2015-01-28|Has expired: Broken for more than 6 months devel/p5-Log-Any-Adapter|devel/p5-Log-Any|2015-01-28|Has expired: devel/p5-Log-Any-Adapter merged into devel/p5-Log-Any by upstream net-im/pidgin-audacious-remote||2015-01-28|Has expired: Broken for more than 6 months www/lifetype||2015-01-28|Has expired: Broken for more than 6 months www/ump||2015-01-28|Has expired: Broken for more than 6 months net/owncloud-csync||2015-02-01|Merged into deskutils/mirall audio/py-eyed3-06|audio/py-eyed3|2015-02-02|Has expired: In audio/abcde dependency has been changed to audio/py-eyed3 mail/postfix210|mail/postfix|2015-02-02|Has expired: Use mail/postfix instead net-im/venom||2015-02-02|Has expired: No more support from the project security/openssh-portable66|security/openssh-portable|2015-02-02|Has expired: security/openssh-portable now has all patches working. This port is obsolete www/p5-WWW-Scraper-ISBN-Driver|www/p5-WWW-Scraper-ISBN|2015-02-02|Has expired: Merged to www/p5-WWW-Scraper-ISBN by upstream www/p5-WWW-Scraper-ISBN-Record|www/p5-WWW-Scraper-ISBN|2015-02-02|Has expired: Merged to www/p5-WWW-Scraper-ISBN by upstream japanese/xlockmore|x11/xlockmore|2015-02-02|Merged into x11/xlockmore deskutils/currtime|sysutils/currtime|2015-02-03|Move to sysutils category sysutils/pcbsd-utils-qt4|sysutils/pcbsd-utils-qt5|2015-02-03|Renamed to pcbsd-utils-qt5 devel/ntopng-zmq||2015-02-05|Has expired: No longer required after net/ntopng 1.1 devel/py-pylib|devel/py-py|2015-02-11|Rename to match upstream (PyPI) name sysutils/brebis|sysutils/backupchecker|2015-02-12|Renamed to backupchecker sysutils/rsyslog7-devel|sysutils/rsyslog7|2015-02-13|Has expired: EoL, use sysutils/rsyslog7 sysutils/rsyslog8-devel|sysutils/rsyslog8|2015-02-13|Has expired: EoL, use sysutils/rsyslog8 japanese/mozc-additions||2015-02-15|Obsoleted by mozc script in japanese/mozc-server math/ruby-numru_units|math/rubygem-numru-units|2015-02-22|Long time broken. Please use math/rubygem-numru-units instead lang/ruby19|lang/ruby20|2015-02-24|Upstream support ended February 23, 2015 games/trigger|games/trigger-rally|2015-02-26|Follow upstream naming multimedia/xbmc|multimedia/kodi|2015-02-28|Project renamed finance/openerp-server||2015-03-01|Has expired: Broken for more than 6 months graphics/p5-Geo-KML||2015-03-01|Has expired mail/postfix-tls||2015-03-01|Has expired: TLS is now a default for postfix / postfix-current net/spserver||2015-03-01|Has expired: Broken for more than 6 months net/xrdesktop||2015-03-01|Has expired: Unmaintained upstream - please use net/xrdesktop2 instead www/mediawiki122||2015-03-01|Has expired: Deprecated by upstream, use www/mediawiki12{3,4} instead www/mod_cplusplus||2015-03-01|Has expired: written for apache 2.0, no longer maintained upstream www/py-django15||2015-03-01|Has expired: not supported by upstream math/isabelle||2015-03-01|Has expired: Broken for more than 6 months net/rubygem-openid|net/rubygem-ruby-openid|2015-03-07|Rename to match our rubygem- port naming devel/p5-Errno||2015-03-09|Errno is part of Perl devel/p5-Class-XSAccessor-Array||2015-03-09|Has been a part of devel/p5-Class-XSAccessor for >5 years. Use that port instead multimedia/ffmpeg25|multimedia/ffmpeg26|2015-03-14|ffmpeg upstream now points to 2.6.x series www/squid33|www/squid|2015-03-15|Has expired: Reached EOL on 28 August 2014, use www/squid (v3.4) instead x11-fonts/ttmkfdir|x11-fonts/mkfontdir|2015-03-22|Has been replaced by mkfontdir/mkfontscale long ago audio/raproxy||2015-03-28|Has expired: Broken for more than 6 months converters/ruby-iconv||2015-03-28|Has expired: Not needed with Ruby 2.x databases/pydbdesigner||2015-03-28|Has expired: Broken for more than 6 months security/cyassl|security/wolfssl|2015-03-28|Renamed upstream devel/rubygem-rcov||2015-03-28|Has expired: Does not work with Ruby 2.x emulators/linux_dist-gentoo-stage3||2015-03-28|Has expired: Broken for more than 6 months emulators/linux_base-gentoo-stage3||2015-03-28|Has expired: Broken for more than 6 months www/vimb|www/vimb-gtk3|2015-03-29|Split into www/vimb-gtk2 and www/vimb-gtk3 (former default) ports-mgmt/portbuilder||2015-03-31|Has expired: No longer developed and overcome by changed in the Ports Collection devel/subversion16|devel/subversion|2015-03-31|Has expired: EoL, use devel/subversion lang/nimrod|lang/nim|2015-04-03|Renamed by upstream deskutils/mirall|deskutils/owncloudclient|2015-04-04|Renamed upstream mail/rubygem-qmail|mail/rubygem-ruby-qmail|2015-04-05|Rename to match our rubygem- port naming devel/rubygem-transactionsimple|devel/rubygem-transaction-simple|2015-04-05|Rename to match our rubygem- port naming print/rubygem-pdfwriter|print/rubygem-pdf-writer|2015-04-05|Rename to match our rubygem- port naming devel/rubygem-filemagic|devel/rubygem-ruby-filemagic|2015-04-05|Rename to match our rubygem- port naming emulators/xl|sysutils/xen-tools|2015-04-06|Renamed into xen-tools lang/gnatdroid-armv5||2015-04-07|Has expired: Nobody cares enough to fix sigtramp-android.c for ARMv5 sysutils/puppet27||2015-04-07|Has expired: Does not work with Ruby 2.x www/rubygem-form_data|www/rubygem-http-form_data|2015-04-07|Has expired: Use www/rubygem-http-form_data instead (renamed by upstream) www/typo345||2015-04-07|Has expired: Upgrade to www/typo3 or www/typo3-lts multimedia/mediabrowser|multimedia/emby-server|2015-04-08|Project renamed deskutils/preferencepanes|deskutils/systempreferences|2015-04-08|preferencepanes merged into systempreferences games/airstrike||2015-04-10|Has expired: never completed, alpha quality, dev site and repo do not resolve www/trac-batchmodify||2015-04-10|Has expired: This functionality was merged into Trac since version 1.0 net/quagga23|net/quagga|2015-04-17|The regression on 8 and 9 has been patched, go back to the regular quagga databases/php53-sqlite3||2015-04-17|Has expired: security EOL reached 14 Aug 2014 textproc/php53-simplexml||2015-04-17|Has expired: security EOL reached 14 Aug 2014 databases/php53-sybase_ct||2015-04-17|Has expired: security EOL reached 14 Aug 2014 databases/php53-pdo_mysql||2015-04-17|Has expired: security EOL reached 14 Aug 2014 textproc/php53-ctype||2015-04-17|Has expired: security EOL reached 14 Aug 2014 textproc/php53-wddx||2015-04-17|Has expired: security EOL reached 14 Aug 2014 security/php53-filter||2015-04-17|Has expired: security EOL reached 14 Aug 2014 ftp/php53-ftp||2015-04-17|Has expired: security EOL reached 14 Aug 2014 net/php53-soap||2015-04-17|Has expired: security EOL reached 14 Aug 2014 converters/php53-recode||2015-04-17|Has expired: security EOL reached 14 Aug 2014 security/php53-openssl||2015-04-17|Has expired: security EOL reached 14 Aug 2014 databases/php53-dba||2015-04-17|Has expired: security EOL reached 14 Aug 2014 databases/php53-pdo_pgsql||2015-04-17|Has expired: security EOL reached 14 Aug 2014 sysutils/php53-fileinfo||2015-04-17|Has expired: security EOL reached 14 Aug 2014 databases/php53-pdo_odbc||2015-04-17|Has expired: security EOL reached 14 Aug 2014 databases/php53-sqlite||2015-04-17|Has expired: security EOL reached 14 Aug 2014 devel/php53-readline||2015-04-17|Has expired: security EOL reached 14 Aug 2014 mail/php53-imap||2015-04-17|Has expired: security EOL reached 14 Aug 2014 sysutils/php53-posix||2015-04-17|Has expired: security EOL reached 14 Aug 2014 archivers/php53-phar||2015-04-17|Has expired: security EOL reached 14 Aug 2014 graphics/php53-gd||2015-04-17|Has expired: security EOL reached 14 Aug 2014 textproc/php53-xsl||2015-04-17|Has expired: security EOL reached 14 Aug 2014 databases/php53-pdo_firebird||2015-04-17|Has expired: security EOL reached 14 Aug 2014 devel/mingw64-binutils||2015-04-17|Has expired: Obsolete. Migrate to devel/binutils based ports devel/cross-binutils||2015-04-17|Has expired: Obsolete. Migrate to devel/binutils based ports databases/php53-pdo_dblib||2015-04-17|Has expired: security EOL reached 14 Aug 2014 devel/php53-sysvshm||2015-04-17|Has expired: security EOL reached 14 Aug 2014 devel/php53-json||2015-04-17|Has expired: security EOL reached 14 Aug 2014 databases/php53-redis||2015-04-17|Has expired: requires php53, security EOL reached 14 Aug 2014 textproc/php53-pspell||2015-04-17|Has expired: security EOL reached 14 Aug 2014 databases/php53-pgsql||2015-04-17|Has expired: security EOL reached 14 Aug 2014 textproc/php53-xmlreader||2015-04-17|Has expired: security EOL reached 14 Aug 2014 converters/php53-iconv||2015-04-17|Has expired: security EOL reached 14 Aug 2014 databases/php53-odbc||2015-04-17|Has expired: security EOL reached 14 Aug 2014 ftp/php53-curl||2015-04-17|Has expired: security EOL reached 14 Aug 2014 math/php53-gmp||2015-04-17|Has expired: security EOL reached 14 Aug 2014 security/php53-mcrypt||2015-04-17|Has expired: security EOL reached 14 Aug 2014 devel/php53-shmop||2015-04-17|Has expired: security EOL reached 14 Aug 2014 math/php53-bcmath||2015-04-17|Has expired: security EOL reached 14 Aug 2014 security/php53-hash||2015-04-17|Has expired: security EOL reached 14 Aug 2014 devel/php53-sysvsem||2015-04-17|Has expired: security EOL reached 14 Aug 2014 archivers/php53-zip||2015-04-17|Has expired: security EOL reached 14 Aug 2014 graphics/php53-exif||2015-04-17|Has expired: security EOL reached 14 Aug 2014 devel/php53-gettext||2015-04-17|Has expired: security EOL reached 14 Aug 2014 databases/php53-mysql||2015-04-17|Has expired: security EOL reached 14 Aug 2014 textproc/php53-xmlwriter||2015-04-17|Has expired: security EOL reached 14 Aug 2014 textproc/php53-xml||2015-04-17|Has expired: security EOL reached 14 Aug 2014 converters/php53-mbstring||2015-04-17|Has expired: security EOL reached 14 Aug 2014 devel/php53-sysvmsg||2015-04-17|Has expired: security EOL reached 14 Aug 2014 databases/php53-mysqli||2015-04-17|Has expired: security EOL reached 14 Aug 2014 misc/php53-calendar||2015-04-17|Has expired: security EOL reached 14 Aug 2014 devel/php53-tokenizer||2015-04-17|Has expired: security EOL reached 14 Aug 2014 databases/php53-pdo||2015-04-17|Has expired: security EOL reached 14 Aug 2014 net/php53-xmlrpc||2015-04-17|Has expired: security EOL reached 14 Aug 2014 databases/php53-interbase||2015-04-17|Has expired: security EOL reached 14 Aug 2014 www/php53-session||2015-04-17|Has expired: security EOL reached 14 Aug 2014 databases/php53-mssql||2015-04-17|Has expired: security EOL reached 14 Aug 2014 www/php53-tidy||2015-04-17|Has expired: security EOL reached 14 Aug 2014 archivers/php53-zlib||2015-04-17|Has expired: security EOL reached 14 Aug 2014 net/php53-ldap||2015-04-17|Has expired: security EOL reached 14 Aug 2014 net-mgmt/php53-snmp||2015-04-17|Has expired: security EOL reached 14 Aug 2014 textproc/php53-dom||2015-04-17|Has expired: security EOL reached 14 Aug 2014 devel/php53-pcntl||2015-04-17|Has expired: security EOL reached 14 Aug 2014 archivers/php53-bz2||2015-04-17|Has expired: security EOL reached 14 Aug 2014 net/php53-sockets||2015-04-17|Has expired: security EOL reached 14 Aug 2014 lang/php53||2015-04-17|Has expired: security EOL reached 14 Aug 2014 lang/php53-extensions||2015-04-17|Has expired: security EOL reached 14 Aug 2014 german/pecl-konto_check||2015-04-17|Has expired: requires php53, security EOL reached 14 Aug 2014 www/moodle26|www/moodle27|2015-04-17|Has expired: Deprecated by upstream, use www/moodle2{7,8} instead databases/php53-pdo_sqlite||2015-04-17|Has expired: security EOL reached 14 Aug 2014 java/eclipse-ocl||2015-04-18|Has expired: depends on deprecated java/eclipse-emf java/eclipse-quantum||2015-04-18|Has expired: depends on deprecated java/eclipse-gef java/eclipse-propedit||2015-04-18|Has expired: evaluation recommendation is to remove rather than update java/eclipse-aptana||2015-04-18|Has expired: evaluation recommendation is to remove rather than update devel/subclipse||2015-04-18|Has expired: evaluation recommendation is to remove rather than update devel/scala-ide||2015-04-18|Has expired: evaluation recommendation is to remove rather than update java/eclipse-webtools||2015-04-18|Has expired: evaluation recommendation is to remove rather than update java/eclipse-RDT||2015-04-18|Has expired: evaluation recommendation is to remove rather than update java/eclipse-aptana-radrails||2015-04-18|Has expired: evaluation recommendation is to remove rather than update java/eclipse-jad||2015-04-18|Has expired: evaluation recommendation is to remove rather than update java/eclipse-vep-examples||2015-04-18|Has expired: evaluation recommendation is to remove rather than update java/eclipse-gef-examples||2015-04-18|Has expired: evaluation recommendation is to remove rather than update java/eclipse-gef||2015-04-18|Has expired: evaluation recommendation is to remove rather than update java/eclipse-sysdeo-tomcat||2015-04-18|Has expired: evaluation recommendation is to remove rather than update java/commonclipse||2015-04-18|Has expired: evaluation recommendation is to remove rather than update java/eclipse-sqlexplorer||2015-04-18|Has expired: evaluation recommendation is to remove rather than update java/eclipse-viplugin||2015-04-18|Has expired: evaluation recommendation is to remove rather than update java/eclipse-vep||2015-04-18|Has expired: evaluation recommendation is to remove rather than update java/eclipse-checkstyle||2015-04-18|Has expired: evaluation recommendation is to remove rather than update java/eclipse-aptana2||2015-04-18|Has expired: evaluation recommendation is to remove rather than update java/eclipse-examples||2015-04-18|Has expired: evaluation recommendation is to remove rather than update java/eclipse-hibernatetools||2015-04-18|Has expired: evaluation recommendation is to remove rather than update java/eclipse-langpack||2015-04-18|Has expired: evaluation recommendation is to remove rather than update java/eclipse-uml||2015-04-18|Has expired: evaluation recommendation is to remove rather than update java/eclipse-datatools||2015-04-18|Has expired: evaluation recommendation is to remove rather than update java/eclipse-emf||2015-04-18|Has expired: evaluation recommendation is to remove rather than update java/eclipse-pmd||2015-04-18|Has expired: evaluation recommendation is to remove rather than update textproc/nltk|textproc/py-nltk|2015-04-19|Renamed for consistency devel/rubygem-inline|devel/rubygem-rubyinline|2015-04-21|Rename to match our rubygem- port naming devel/p5-Devel-Profiler|devel/p5-Devel-NYTProf|2015-04-24|Devel::DProf was removed form Perl, use Devel::NYTProf audio/filter_audio|audio/libfilteraudio|2015-04-27|audio/filter-audio is renamed into audio/libfilteraudio www/p5-Google-Code-Upload||2015-04-30|Has expired: Google Code will be shutting down (http://google-opensource.blogspot.tw/2015/03/farewell-to-google-code.html) games/wmfortune||2015-04-30|Has expired: Broken for more than 6 months devel/p5-base||2015-04-30|Has expired: this port is outdated and base 2.18+ is already in all supported Perl releases security/py-certify|security/py-certifi|2015-05-01|security/py-certify is renamed into security/py-certifi devel/rubygem-mini_portile||2015-05-03|Has expired: Unneeded port devel/rubygem-mirror|devel/rubygem-rubygems-mirror|2015-05-03|Rename to match our rubygem- port naming graphics/rubygem-graphviz|graphics/rubygem-ruby-graphviz|2015-05-03|Rename to match our rubygem- port naming x11-fm/walcommander|x11-fm/wcmcommander|2015-05-07|Renamed upstream archivers/lz4|archivers/liblz4|2015-05-08|Superseded by archivers/liblz4 deskutils/libopensync-plugin-python||2015-05-09|Has expired: Unfetchable, devices are not produced anymore deskutils/msynctool||2015-05-09|Has expired: Unfetchable, devices are not produced anymore devel/ruby-flexmock|devel/rubygem-flexmock|2015-05-10|Rename to match our rubygem- port naming lang/pypy-devel|lang/pypy|2015-05-17|Superseded by lang/pypy databases/my2cego|databases/cegobridge|2015-05-19|Superseded by databases/cegobridge emulators/wine-compholio|emulators/wine-staging|2015-05-23|Renamed emulators/i386-wine-compholio|emulators/i386-wine-staging|2015-05-23|Renamed devel/rubygem-bioruby|devel/rubygem-bio|2015-05-23|Rename to match our rubygem- port naming www/rubygem-taggable|www/rubygem-acts_as_taggable|2015-05-23|Rename to match our rubygem- port naming security/rubygem-meterpreter_bins|security/rubygem-metasploit-payloads|2015-05-23|Renamed upstream textproc/rubygem-augeas|textproc/rubygem-ruby-augeas|2015-05-23|Rename to match our rubygem- port naming textproc/rubygem-xslt|textproc/rubygem-ruby-xslt|2015-05-24|Rename to match our rubygem- port naming net-mgmt/glpi-plugins-tracker-agent|net-mgmt/glpi-plugins-fusioninventory-server|2015-05-24|Has expired: superseded by net-mgmt/glpi-plugins-fusioninventory-server net-mgmt/glpi-plugins-tracker-server|net-mgmt/glpi-plugins-fusioninventory-server|2015-05-24|Has expired: superseded by net-mgmt/glpi-plugins-fusioninventory-server science/rubygem-netcdf|science/rubygem-ruby-netcdf|2015-05-24|Rename to match our rubygem- port naming security/rubygem-rc4|security/rubygem-ruby-rc4|2015-05-24|Rename to match our rubygem- port naming print/rubygem-colortools|print/rubygem-color-tools|2015-05-24|Rename to match our rubygem- port naming www/rubygem-layout-yullio|www/rubygem-layout_yullio_generator|2015-05-27|Rename to match our rubygem- port naming net/rubygem-rightaws|net/rubygem-right_aws|2015-05-27|Rename to match our rubygem- port naming net/rubygem-rightflexiscale|net/rubygem-right_flexiscale|2015-05-27|Rename to match our rubygem- port naming net/rubygem-rightgogrid|net/rubygem-right_gogrid|2015-05-27|Rename to match our rubygem- port naming net/rubygem-righthttpconnection|net/rubygem-right_http_connection|2015-05-27|Rename to match our rubygem- port naming net/rubygem-rightslicehost|net/rubygem-right_slicehost|2015-05-27|Rename to match our rubygem- port naming audio/rubygem-shout|audio/rubygem-ruby-shout|2015-05-27|Rename to match our rubygem- port naming devel/rubygem-test|devel/rubygem-rubygems-test|2015-05-29|Rename to match our rubygem- port naming devel/rubygem-deeptest|devel/rubygem-deep_test|2015-05-30|Rename to match our rubygem- port naming audio/portaudio2|audio/portaudio|2015-05-30|Merged into the main port net/rubygem-yadis|net/rubygem-ruby-yadis|2015-05-30|Rename to match our rubygem- port naming ports-mgmt/porteasy||2015-06-01|Has expired: Does not support pkgng textproc/hgrep||2015-06-01|Has expired: Not needed any more, base grep has coloring support www/diamanda||2015-06-01|Has expired: Broken for more than 6 months devel/py-ScriptTest|devel/py-scripttest|2015-06-01|Renamed upstream net/openmpi-devel||2015-06-09|Port older than net/openmpi databases/postgresql84-client||2015-06-10|Has expired: "EOL was reached in July 2014" databases/postgresql84-contrib||2015-06-10|Has expired: "EOL was reached in July 2014" databases/postgresql84-docs||2015-06-10|Has expired: "EOL was reached in July 2014" databases/postgresql84-plperl||2015-06-10|Has expired: "EOL was reached in July 2014" databases/postgresql84-plpython||2015-06-10|Has expired: "EOL was reached in July 2014" databases/postgresql84-pltcl||2015-06-10|Has expired: "EOL was reached in July 2014" deskutils/deskbar-applet||2015-06-10|Has expired: Broken since update to gnome3 deskutils/gimmie||2015-06-10|Has expired: Broken since update to gnome3 deskutils/glipper||2015-06-10|Has expired: Broken since update to gnome3 deskutils/gnochm||2015-06-10|Has expired: Broken since update to gnome3 deskutils/hamster-applet||2015-06-10|Has expired: Broken since update to gnome3 deskutils/kupfer||2015-06-10|Has expired: Broken since update to gnome3 deskutils/ontv||2015-06-10|Has expired: Broken since update to gnome3 deskutils/timer-applet||2015-06-10|Has expired: Broken since update to gnome3 editors/scribes||2015-06-10|Has expired: Broken since update to gnome3 games/gweled||2015-06-10|Has expired: Broken since update to gnome3 games/py-pychess||2015-06-10|Has expired: Broken since update to gnome3 graphics/gqview||2015-06-10|Has expired: Unmaintained upstream, preferences dialog broken, use graphics/geeqie fork lang/gcc47-aux||2015-06-10|Has expired: GCC 4.7 branch closed June 2014, move to lang/gcc-aux multimedia/arista||2015-06-10|Has expired: Broken since update to gnome3 net/service-discovery-applet||2015-06-10|Has expired: Broken since update to gnome3 net/shaperprobe||2015-06-10|Has expired: broken with no known fix (PR 197327) print/gnome-specimen||2015-06-10|Has expired: Broken since update to gnome3 x11-themes/gtk-aqualightblue-theme||2015-06-10|Has expired: Upstream disappeared x11-themes/gtk-flat-theme2||2015-06-10|Has expired: Upstream disappeared databases/postgresql84-server||2015-06-10|Has expired: "EOL was reached in July 2014" ftp/ncftp1||2015-06-12|Unfetchable multimedia/avidemux2||2015-06-13|Branch no longer maintained upstream, use multimedia/avidemux26 multimedia/avidemux2-plugins||2015-06-13|Branch no longer maintained upstream, use multimedia/avidemux26 multimedia/avidemux26|multimedia/avidemux|2015-06-13|Renamed multimedia/avidemux26-cli|multimedia/avidemux-cli|2015-06-13|Renamed multimedia/avidemux26-plugins|multimedia/avidemux-plugins|2015-06-13|Renamed multimedia/avidemux26-qt4|multimedia/avidemux-qt4|2015-06-13|Renamed editors/zim|deskutils/zim|2015-06-18|Move to more appropriate category net/py-ldap2|net/py-ldap|2015-06-18|Rename to better match upstream name devel/erlang-mustache|devel/erlang-bbmustache|2015-06-21|Renamed upstream dns/maradns1|dns/maradns|2015-06-23|Has expired: MaraDNS 1 end-of-life: June 21, 2015, use dns/maradns net/py-soappy-devel||2015-06-25|Please use net/py-soappy instead. It's fresher than -devel devel/armv6-freebsd10.0-xdev||2015-06-27|Not usable for the purpose it has been intended for devel/common_lib|devel/erlang-common_lib|2015-06-27|Renamed with erlang- prefix devel/cowlib|devel/erlang-cowlib|2015-06-27|Renamed with erlang- prefix devel/cuttlefish|devel/erlang-cuttlefish|2015-06-27|Renamed with erlang- prefix devel/esdl|devel/erlang-esdl|2015-06-27|Renamed with erlang- prefix devel/folsom|devel/erlang-folsom|2015-06-27|Renamed with erlang- prefix devel/goldrush|devel/erlang-goldrush|2015-06-27|Renamed with erlang- prefix devel/lager_syslog|devel/erlang-lager_syslog|2015-06-27|Renamed with erlang- prefix devel/lager|devel/erlang-lager|2015-06-27|Renamed with erlang- prefix devel/meck|devel/erlang-meck|2015-06-27|Renamed with erlang- prefix devel/neotoma|devel/erlang-neotoma|2015-06-27|Renamed with erlang- prefix devel/oserl|devel/erlang-oserl|2015-06-27|Renamed with erlang- prefix devel/poolboy|devel/erlang-poolboy|2015-06-27|Renamed with erlang- prefix net/erlang_xmlrpc|net/erlang-xmlrpc|2015-06-27|Renamed with erlang- prefix net/ranch|net/erlang-ranch|2015-06-27|Renamed with erlang- prefix www/cowboy|www/erlang-cowboy|2015-06-27|Renamed with erlang- prefix www/mochiweb-basho|www/erlang-mochiweb-basho|2015-06-27|Renamed with erlang- prefix www/mochiweb|www/erlang-mochiweb|2015-06-27|Renamed with erlang- prefix www/webmachine|www/erlang-webmachine|2015-06-27|Renamed with erlang- prefix textproc/exmpp|devel/erlang-exmpp|2015-06-27|Moved to devel category, with erlang- prefix databases/eredis|databases/erlang-eredis|2015-06-27|Renamed with erlang- prefix databases/epgsql|databases/erlang-epgsql|2015-06-27|Renamed with erlang- prefix www/varnish|www/varnish4|2015-06-28|Has expired: EOL was reached in April 2015, use www/varnish4 audio/padevchooser||2015-06-29|Has expired: Broken for more than 6 months devel/xtla||2015-06-29|Has expired: Broken for more than 6 months mail/mail-notification||2015-06-29|Has expired: Broken for more than 6 months ports-mgmt/gnome-packagekit||2015-06-29|Has expired: Broken for more than 6 months sysutils/py-salt-api||2015-06-29|Has expired: Broken for more than 6 months devel/rubygem-mash|devel/rubygem-hashie|2015-06-30|Has expired: Deprecated by upstream. Use devel/rubygem-hashie instead net/rubygem-bunny060|net/rubygem-bunny|2015-06-30|Has expired: Use net/rubygem-bunny instead security/rubygem-hmac|security/rubygem-ruby-hmac|2015-06-30|Has expired: Duplicate of security/rubygem-ruby-hmac www/ruby-amazon|www/ruby-aws|2015-06-30|Has expired: Rendered obsolete by upstream since Amazon shut down access to AWS API v3 (2008-03-31). Use www/ruby-aws instead net/ptpd2-devel|net/ptpd2|2015-07-02|Development version no longer necessary devel/erlang-cowlib|www/erlang-cowlib|2015-07-03|Move to www where it belongs net/py-google||2015-07-03|Google no longer supports the SOAP API for search devel/erlang-ibrowse|www/erlang-ibrowse|2015-07-05|Move to www where it belongs multimedia/ffmpeg23|multimedia/ffmpeg|2015-07-05|Obsolete since recent upstream upgrade of main ffmpeg port. Use multimedia/ffmpeg instead multimedia/ffmpeg26|multimedia/ffmpeg|2015-07-05|Obsolete since recent upstream upgrade of main ffmpeg port. Use multimedia/ffmpeg instead x11/docker|x11/docker-tray|2015-07-06|Renamed graphics/fli2gif||2015-07-07|Has expired: No public distfiles net-im/tkabbur||2015-07-07|Has expired: Upstream development ceased since 2008 www/mod_wsgi3|www/mod_wsgi4|2015-07-12|Renamed to reflect new version archivers/pear-PHP_Archiv|archivers/pear-PHP_Archive|2015-07-12|Fix path devel/p5-Test-TempDir|devel/p5-Test-TempDir-Tiny|2015-07-14|Has expired: Use devel/p5-Test-TempDir-Tiny instead x11-toolkits/fpc-gtk1||2015-07-14|Development has been discontinued graphics/fpc-fpgtk||2015-07-14|Development has been discontinued editors/lazarus-lcl-gtk||2015-07-14|Development has been discontinued x11/gmessage||2015-07-14|Upstream has disappeared and development ceased security/ssh-gui||2015-07-14|Development ceased, broken with modern ssh textproc/gdict||2015-07-14|Development ceased, unusable print/pup||2015-07-14|Development ceased, unusable audio/rubyripper||2015-07-16|Has expired: Does not build and is deprecated upstream ports-mgmt/vulnerability-test-port||2015-07-19|Useless after portaudit retirement print/texlive-infra|print/texlive-tlmgr|2015-07-20|Renamed print/cm-super||2015-07-20|Obsolete devel/rubygem-builder31||2015-07-20|Has expired: not used by other ports anymore devel/rubygem-timers1||2015-07-20|Has expired: not used by other ports anymore net/rubygem-rubyntlm01||2015-07-20|Has expired: not used by other ports anymore security/rubygem-net-scp11||2015-07-20|Has expired: not used by other ports anymore security/rubygem-net-ssh27||2015-07-20|Has expired: not used by other ports anymore graphics/kuickshow-kde4||2015-07-21|Has expired: Broken for more than 6 months graphics/sng||2015-07-21|Has expired: Broken for more than 6 months japanese/netype||2015-07-21|Has expired: Broken for more than 6 months databases/p5-DBD-Pg32|databases/p5-DBD-Pg|2015-07-22|Has expired: Use databases/p5-DBD-Pg instead, compatibility probles are fixed devel/libiomp5-devel|devel/llvm-devel|2015-07-24|Merged with devel/llvm-devel devel/p5-Test-Tester|devel/p5-Test-Simple|2015-07-25|Has expired: Part of p5-Test-Simple (use that instead), and included in perl 5.22 devel/p5-Test-use-ok|devel/p5-Test-Simple|2015-07-25|Has expired: Part of devel/p5-Test-Simple (use that instead), and included in perl 5.22 sysutils/libzeitgeist|sysutils/zeitgeist|2015-07-26|Merged into zeitgeist x11/mate-dialogs||2015-07-27|Not part of MATE 1.10 devel/automake14||2015-07-27|Has expired: Not used in the ports tree anymore sysutils/slurm-hpc|sysutils/slurm-wlm|2015-07-28|Upstream is standardizing on the name "slurm-wlm" textproc/kibana|textproc/kibana3|2015-07-29|Moved to leave place for a kibana-4 port lang/clang-cheri|devel/llvm-cheri|2015-07-30|Moved to devel/llvm-cheri to match other LLVM ports japanese/p5-Acme-Lou||2015-08-01|Has expired: Needs ja-p5-Text-MeCab that does not work with 5.18 or above mail/maildirsync||2015-08-01|Has expired: Requires an unsupported version of Perl mail/qar-bufo||2015-08-01|Has expired: Requires an unsupported version of Perl net/py-soapy|net/py-soappy|2015-08-01|Has expired: Abandonware depending on ancient py-xml. Please use net/py-soappy instead net-p2p/btqueue||2015-08-01|Has expired: Runtime broken (does not download anything) sysutils/vhdtool||2015-08-01|Has expired: Use mkimg(1) instead www/rubygem-modernizr||2015-08-01|Has expired: This gem has been removed from rubygems.org by upstream devel/java-util-concurrent||2015-08-03|Has expired: Included in all current JDKs by default devel/py-pyparsing15||2015-08-03|Has expired: Not used in the ports tree anymore finance/tryton||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_account||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_account_be||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_account_invoice||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_account_invoice_history||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_account_invoice_line_standalone||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_account_product||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_account_statement||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_account_stock_anglo_saxon||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_account_stock_continental||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_analytic_account||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_analytic_invoice||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_analytic_purchase||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_analytic_sale||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_calendar||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_calendar_classification||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_calendar_scheduling||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_calendar_todo||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_carrier||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_carrier_percentage||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_carrier_weight||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_company||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_company_work_time||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_country||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_currency||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_dashboard||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_ldap_authentication||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_ldap_connection||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_party||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_party_siret||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_party_vcarddav||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_product||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_product_cost_fifo||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_product_cost_history||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_product_measurements||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_product_price_list||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_production||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_project||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_project_plan||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_project_revenue||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_purchase||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_purchase_invoice_line_standalone||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_purchase_shipment_cost||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_sale||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_sale_opportunity||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_sale_price_list||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_sale_shipment_cost||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_stock||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_stock_forecast||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_stock_inventory_location||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_stock_location_sequence||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_stock_lot||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_stock_product_location||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_stock_split||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_stock_supply||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_stock_supply_day||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_stock_supply_forecast||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_stock_supply_production||2015-08-05|No more supported upstream, use tryton 2.8 instead finance/trytond_timesheet||2015-08-05|No more supported upstream, use tryton 2.8 instead textproc/py-stripogram||2015-08-05|Discontinued, author discourages to use it french/trytond_account_fr||2015-08-05|No more supported upstream, use tryton 2.8 instead german/trytond_account_de_skr03||2015-08-05|No more supported upstream, use tryton 2.8 instead www/trytond_google_maps||2015-08-05|No more supported upstream, use tryton 2.8 instead devel/appdata-tools|devel/appstream-glib|2015-08-05|Replaced by appstream-glib textproc/pystemmer|textproc/py-pystemmer|2015-08-06|Rename to match upstream (PyPI) name dns/knot|dns/knot1|2015-08-07|Rename to knot1 now knot 2.0 is out net/py-xmlrpclib||2015-08-07|Has expired: This is part of standard library since python 2.2 net-p2p/py-kenosis||2015-08-07|Has expired: Fails to run with modern python graphics/skencil||2015-08-08|Has expired: Project is abandoned and was overtaken by sK1 fork www/ismail||2015-08-08|Has expired: Development has been discontinued for many years sysutils/rubygem-bundler17||2015-08-13|Has expired: not used by other ports anymore sysutils/fpkg||2015-08-15|Has expired: Does not support pkg(8) games/galaxymage||2015-08-16|Has expired: Runtime broken and abandoned upstream devel/rubygem-fog-brightbox|net/rubygem-fog-brightbox|2015-08-19|Move to a better place www/ompload||2015-08-20|Has expired: omploader.org is down for many years devel/ocaml-equeue|www/ocaml-net|2015-08-20|Has expired: Superseded by www/ocaml-net devel/hs-MaybeT||2015-08-20|Removed: Deprecated devel/hs-geniplate||2015-08-20|Removed: Upstream support is discontinued devel/hs-glade||2015-08-20|Removed: Upstream support is discontinued devel/hs-haskell-platform||2015-08-20|Removed: It is not tracked any more devel/hs-ranges||2015-08-20|Removed: Deprecated devel/hs-testpack||2015-08-20|Removed: Upstream is unmaintained graphics/hs-soegtk||2015-08-20|Removed: Upstream support is discontinued lang/hs-epic||2015-08-20|Removed: It is not needed any more math/hs-nats||2015-08-20|Removed: It has been merged into the base library of GHC multimedia/hs-gstreamer||2015-08-20|Removed: Upstream support is discontinued www/hs-scgi||2015-08-20|Removed: Deprecated www/hs-yesod-platform||2015-08-20|Removed: Upstream support is discontinued www/hs-yesod-routes||2015-08-20|Removed: Upstream support is discontinued x11-toolkits/hs-gtkglext||2015-08-20|Removed: Upstream support is discontinued textproc/prosper||2015-08-22|Removed: maintainted in print/texlive-texmf print/ghostscript7|print/ghostscript7-base|2015-08-22|Split into print/ghostscript7-base and print/ghostscript7-x11 print/ghostscript7-nox11|print/ghostscript7-base|2015-08-22|Integrated into print/ghostscript7-base print/ghostscript8|print/ghostscript8-base|2015-08-22|Split into print/ghostscript8-base and print/ghostscript8-x11 print/ghostscript8-nox11|print/ghostscript8-base|2015-08-22|Integrated into print/ghostscript8-base print/ghostscript9|print/ghostscript9-base|2015-08-22|Split into print/ghostscript9-base and print/ghostscript9-x11 print/ghostscript9-nox11|print/ghostscript9-base|2015-08-22|Integrated into print/ghostscript9-base print/ghostscript9-agpl|print/ghostscript9-agpl-base|2015-08-22|Split into print/ghostscript9-agpl-base and print/ghostscript9-agpl-x11 print/ghostscript9-agpl-nox11|print/ghostscript9-agpl-base|2015-08-22|Integrated into print/ghostscript9-agpl-base www/pelican|www/py-pelican|2015-08-29|Rename to match Python naming conventions devel/ninja16|devel/ninja|2015-08-29|Use devel/ninja instead devel/geany-plugin-gproject|devel/geany-plugin-projectorganizer|2015-08-31|Renamed to match upstream naming www/p5-WWW-Shorten-NotLong||2015-09-01|Has expired: notlong.com is now dead games/linux-majesty-demo||2015-09-01|Has expired: Broken for more than 6 months games/linux-coldwar-demo||2015-09-01|Has expired: Broken for more than 6 months games/linux-hdb-demo||2015-09-01|Has expired: Broken for more than 6 months devel/rubygem-igraph||2015-09-01|Has expired: Broken for more than 6 months games/linux-candycruncher-demo||2015-09-01|Has expired: Broken for more than 6 months games/linux-gorky17-demo||2015-09-01|Has expired: Broken for more than 6 months sysutils/syslog-ng33||2015-09-01|Has expired: No longer supported by Balabit cince November 2014 textproc/ruby-xmlconfigfile|textproc/ruby-xml-configfile|2015-09-03|Rename to match our ruby naming net/mcast-tools|net/pim6-tools|2015-09-07|Rename www/p5-Dancer-Session-Memcached|databases/p5-Dancer-Session-Memcached|2015-09-09|Duplicate port devel/cloudabi-cloudlibc||2015-09-12|Moved to the CloudABI Ports Collection devel/cloudabi-compiler-rt||2015-09-12|Moved to the CloudABI Ports Collection devel/cloudabi-libc++||2015-09-12|Moved to the CloudABI Ports Collection devel/cloudabi-libc++abi||2015-09-12|Moved to the CloudABI Ports Collection devel/cloudabi-libunwind||2015-09-12|Moved to the CloudABI Ports Collection japanese/marumoji-fonts|japanese/font-marumoji|2015-09-13|Renamed www/asp-php||2015-09-13|Unmaintained upstream, generate unsupported php textproc/py-xmltools||2015-09-15|Remove port marked broken for six months: fetch failed security/krb5-111|security/krb5-112|2015-09-15|krb5-1.11 EOLed by MIT in December 2014 textproc/py-xml||2015-09-16|Remove: this package is available in standard python library since 2.2 x11-toolkits/wxgtk28-unicode|x11-toolkits/wxgtk28|2015-09-16|Make wxGTK now only unicode x11-toolkits/wxgtk28-unicode-contrib|x11-toolkits/wxgtk28-contrib|2015-09-16|Make wxGTK now only unicode x11-toolkits/py-wxPython28-unicode|x11-toolkits/py-wxPython28|2015-09-16|Make wxGTK now only unicode japanese/font-mplus|japanese/font-mplus-outline|2015-09-21|Renamed www/iojs|www/node|2015-09-23|io.js has been merged back to Node.js japanese/k10|japanese/font-naga10|2015-09-25|Renamed japanese/k12|japanese/font-kaname12|2015-09-25|Renamed japanese/elisa8x8|japanese/font-elisa8|2015-09-25|Renamed japanese/kanji18|japanese/font-kanji18|2015-09-25|Renamed japanese/kanji26|japanese/font-kanji26|2015-09-25|Renamed japanese/kappa20|japanese/font-kappa20|2015-09-25|Renamed japanese/mikachan-ttfonts|japanese/font-mikachan|2015-09-25|Renamed japanese/monafonts-ttf|japanese/font-mona-ttf|2015-09-25|Renamed japanese/monafonts|japanese/font-mona|2015-09-25|Renamed chinese/joe|editors/joe|2015-09-26|Regular joe's editor now supports Chinese net/linc||2015-09-27|Has expired: Last release in 2003, not used by anything anymore net/linc-reference||2015-09-27|Has expired: Last release in 2003, not used by anything anymore x11/xlogout||2015-09-27|Has expired: Useless cruft from 1989 net/rubygem-amq-client||2015-10-01|Has expired: Deprecated by Upstream. It is part of net/rubygem-amqp codebase now ports-mgmt/bpm||2015-10-10|No support for pkg www/moodle27||2015-10-11|Has expired: Please upgrade to moodle28 or moodle29 graphics/epeg|devel/efl|2015-10-11|Has expired: Merged into devel/efl x11-drivers/xf86-video-ati-ums||2015-10-13|Not supported by xorg-server 1.17 x11/nvidia-driver-173||2015-10-13|Does not support xorg-server 1.15 and higher net-mgmt/bsnmptools||2015-10-16|Has expired: client tools (including SNMPv3 support) are part of the base system security/yubikey-personalization|security/ykpers|2015-10-18|Port duplicate with security/ykpers devel/rubygem-listen2||2015-10-20|Has expired: not used by other ports anymore devel/cloudabi-binutils|devel/cloudabi-binutils-x86_64|2015-10-21|CloudABI now supports aarch64 as well net/ntp-rc|net/ntp|2015-10-21|ntp-4.2.8p4 has gone GA x11-wm/clementine|x11-wm/clementine-wm|2015-10-23|add suffix so the port is not mixed up with audio/clementine-player www/twig||2015-10-25|Has expired: Upstream vanished, php3 and php4 are long unsupported misc/ruby-progressbar|devel/rubygem-ruby-progressbar|2015-10-25|Has expired: Abandoned upstream, superseded by devel/rubygem-ruby-progressbar databases/py-mssql|databases/py-pymssql|2015-10-28|Broken with current FreeTDS net/py-medusa||2015-10-28|Abandoned upstream, last release was in 2005 audio/py-audiotools|audio/py-fmoo-audiotools|2015-10-29|Rename to match PyPI nomenclature audio/cmus-post.fm||2015-10-31|Has expired: Broken for more than 6 months devel/libphish||2015-10-31|Has expired: Broken for more than 6 months devel/rubygem-debugger||2015-10-31|Has expired: This port is for Ruby 1.9 only, upstream stopped maintenance games/linux-ningpo-demo||2015-10-31|Has expired: Broken for more than 6 months graphics/gdal-grass||2015-10-31|Has expired: Superseded by gdal-2.0.0 graphics/picviz||2015-10-31|Has expired: Broken for more than 6 months irc/weechat-devel|irc/weechat|2015-10-31|Has expired: far behind stable irc/weechat (use it instead) mail/cucipop||2015-10-31|Has expired: Broken for more than 6 months multimedia/streamanalyze||2015-10-31|Has expired: Broken for more than 6 months net-mgmt/collectd|net-mgmt/collectd5|2015-10-31|Has expired: Please move to collectd5 - collect4 is not developed/patched sysutils/sdd||2015-10-31|Has expired: Broken for more than 6 months sysutils/xfce4-minicmd-plugin||2015-10-31|Has expired: Broken for more than 6 months www/linux-libgtkembedmoz||2015-10-31|Has expired: Broken for more than 6 months www/py-feedfinder||2015-10-31|Has expired: Broken for more than 6 months www/py-openssl-proxy||2015-10-31|Has expired: Broken for more than 6 months www/py-webware||2015-10-31|Has expired: Broken for more than 6 months www/py-webware-component||2015-10-31|Has expired: Depends on deprecated www/py-webware x11-fonts/code2001||2015-10-31|Has expired: Broken for more than 6 months x11-wm/e-module-diskio||2015-10-31|Has expired: Broken for more than 7 months devel/ros||2015-11-01|Has expired: Unsupported upstream, see http://wiki.ros.org/Distributions ports-mgmt/portsopt||2015-11-01|Has expired: Deprecated by optionsng devel/pyvisa|devel/py-pyvisa|2015-11-02|Renamed to comply with Python ports policy devel/pyvisa-py|devel/py-pyvisa-py|2015-11-02|Renamed to comply with Python ports policy science/pyteomics.biolccc|science/py-pyteomics.biolccc|2015-11-02|Renamed to comply with Python ports policy science/pyteomics|science/py-pyteomics|2015-11-02|Renamed to comply with Python ports policy graphics/cal3d-devel|graphics/cal3d|2015-11-02|Development ceased in 2006 so set last devel version as stable www/joomla31|www/joomla3|2015-11-03|Renamed to match upstream only supporting the latest 3.x release at a time devel/py-parsing|devel/py-pyparsing|2015-11-04|Renamed to match upstream naming devel/py-pygitup|devel/py-git-up|2015-11-07|Renamed to match upstream naming devel/phptags||2015-11-08|Has expired: abandoned upstream sysutils/torsmo|sysutils/conky|2015-11-08|Has expired: no new releases for years, consider using sysutils/conky databases/mysql-workbench51|databases/mysql-workbench52|2015-11-10|Has expired: EOL upstream, use databases/mysql-workbench52 instead databases/mysql51-client||2015-11-10|Has expired: EOL upstream, use mysql55 or mysql56 instead databases/mysql51-scripts||2015-11-10|Has expired: EOL upstream, use mysql55 or mysql56 instead databases/mysql51-server||2015-11-10|Has expired: EOL upstream, use mysql55 or mysql56 instead databases/p5-DBD-mysql51|databases/p5-DBD-mysql|2015-11-10|Has expired: EOL upstream, use databases/p5-DBD-mysql instead databases/py-MySQLdb51||2015-11-10|Has expired: EOL upstream, use databases/py-MySQLdb instead deskutils/steadyflow||2015-11-13|Has expired: No new releases for years, consider using net/uget net/py-smb|net/py-pysmb|2015-11-14|Renamed to match upstream naming devel/py-asn1-modules|devel/py-pyasn1-modules|2015-11-14|Renamed to match upstream naming devel/py-experimental.cssselect||2015-11-15|The only consumer of this port switched to www/py-cssselect databases/mariadb-client||2015-11-18|Vulnerable, no updates expected, use mariadb55 or mariadb100 instead databases/mariadb-server||2015-11-18|Vulnerable, no updates expected, use mariadb55 or mariadb100 instead databases/mariadb-scripts||2015-11-18|Vulnerable, no updates expected, use mariadb55 or mariadb100 instead devel/py-asn1|devel/py-pyasn1|2015-11-18|Renamed to match upstream naming devel/py-pytz3|devel/py3-pytz|2015-11-19|Port Renamed devel/ocaml-typeconv|devel/ocaml-type_conv|2015-11-20|Renamed to match upstream naming www/py3-aiohttp|www/py-aiohttp|2015-11-21|Duplicate port textproc/kibana4|textproc/kibana41|2015-11-22|Distinguish from incompatible kibana42 devel/qsvn||2015-11-23|Has expired: Development discontinued since 2009 audio/pecl-id3||2015-11-28|Has expired: Broken for more than 6 months dns/geta||2015-11-28|Has expired: Broken for more than 6 months finance/openerp-web||2015-11-28|Has expired: Broken for more than 6 months devel/py-async||2015-11-28|Has expired: Further using of this module is not encouraged by upstream chinese/kon2||2015-11-28|Has expired: Depends on expiring chinese/cce games/linux-skulltag||2015-11-28|Has expired: Depends on expiring audio/linux-fmodapi archivers/wzip||2015-11-28|Has expired: Broken for more than 6 months databases/sybtcl||2015-11-28|Has expired: Broken for more than 6 months biology/povchem||2015-11-28|Has expired: Broken for more than 6 months audio/btc||2015-11-28|Has expired: Broken for more than 6 months astro/wmglobe||2015-11-28|Has expired: Broken for more than 6 months graphics/pyro||2015-11-28|Has expired: Broken for more than 6 months graphics/jpeg2ps||2015-11-28|Has expired: Broken for more than 6 months chinese/gugod-clean||2015-11-28|Has expired: Broken for more than 6 months comms/bforce||2015-11-28|Has expired: Broken for more than 6 months cad/geda-docs||2015-11-28|Has expired: Broken for more than 6 months chinese/cwtexttf||2015-11-28|Has expired: Broken for more than 6 months comms/zmtx-zmrx||2015-11-28|Has expired: Broken for more than 6 months astro/sky2000||2015-11-28|Has expired: Broken for more than 6 months deskutils/libopensync-plugin-file||2015-11-28|Has expired: Broken for more than 6 months databases/sqlite-ext-mobigroup||2015-11-28|Has expired: Broken for more than 6 months chinese/bg5ps||2015-11-28|Has expired: Broken for more than 6 months deskutils/x-tile||2015-11-28|Has expired: Broken for more than 6 months graphics/pure-gl||2015-11-28|Has expired: Broken for more than 6 months audio/dvda-author||2015-11-28|Has expired: Broken for more than 6 months chinese/oxim||2015-11-28|Has expired: Broken for more than 6 months editors/spe||2015-11-28|Has expired: Broken for more than 6 months cad/geda-symcheck||2015-11-28|Has expired: Broken for more than 6 months audio/linux-fmodapi||2015-11-28|Has expired: Broken for more than 6 months audio/pure-audio||2015-11-28|Has expired: Broken for more than 6 months benchmarks/geekbench||2015-11-28|Has expired: Broken for more than 6 months graphics/icoconvert||2015-11-28|Has expired: Broken for more than 6 months cad/geda-utils||2015-11-28|Has expired: Broken for more than 6 months deskutils/tomboy-plugin-wordcount||2015-11-28|Has expired: Broken for more than 6 months graphics/sketch||2015-11-28|Has expired: Broken for more than 6 months graphics/clutter-box2d||2015-11-28|Has expired: Broken for more than 6 months audio/scmpc||2015-11-28|Has expired: Broken for more than 6 months ftp/gnusget||2015-11-28|Has expired: Broken for more than 6 months comms/gpsk31||2015-11-28|Has expired: Broken for more than 6 months cad/geda-gschem||2015-11-28|Has expired: Broken for more than 6 months audio/ampache||2015-11-28|Has expired: Broken for more than 6 months cad/slffea||2015-11-28|Has expired: Broken for more than 6 months audio/cripple||2015-11-28|Has expired: Broken for more than 6 months cad/geda-gattrib||2015-11-28|Has expired: Broken for more than 6 months cad/findhier||2015-11-28|Has expired: Broken for more than 6 months x11/avant-window-navigator||2015-11-28|Has expired: Broken for more than 6 months cad/geda-netlist||2015-11-28|Has expired: Broken for more than 6 months deskutils/libopensync-plugin-sunbird||2015-11-28|Has expired: Broken for more than 6 months biology/ortep3||2015-11-28|Has expired: Broken for more than 6 months astro/aa||2015-11-28|Has expired: Broken for more than 6 months french/belote||2015-11-28|Has expired: Broken for more than 6 months converters/p5-String-SetUTF8||2015-11-28|Has expired: Broken for more than 6 months cad/geda-examples||2015-11-28|Has expired: Broken for more than 6 months editors/yasnippet||2015-11-28|Has expired: Broken for more than 6 months audio/musica||2015-11-28|Has expired: Broken for more than 6 months graphics/rubyphoto||2015-11-28|Has expired: Broken for more than 6 months german/bsdpaste||2015-11-28|Has expired: Broken for more than 6 months audio/amrcoder||2015-11-28|Has expired: Broken for more than 6 months sysutils/bashburn||2015-11-28|Has expired: Broken for more than 6 months editors/e93||2015-11-28|Has expired: Broken for more than 6 months audio/tepsonic||2015-11-28|Has expired: Broken for more than 6 months astro/ephem||2015-11-28|Has expired: Broken for more than 6 months chinese/cce||2015-11-28|Has expired: Broken for more than 6 months graphics/qcread||2015-11-28|Has expired: Broken for more than 6 months databases/py-sqlkit||2015-11-28|Has expired: Broken for more than 6 months databases/usogres||2015-11-28|Has expired: Broken for more than 6 months cad/libgeda||2015-11-28|Has expired: Broken for more than 6 months chinese/p5-Lingua-ZH-BPMFConvert||2015-11-28|Has expired: Broken for more than 6 months french/alphabet_sounds_fr||2015-11-28|Has expired: Broken for more than 6 months deskutils/mrundlg||2015-11-28|Has expired: Broken for more than 6 months databases/erlang-mysql||2015-11-28|Has expired: Broken for more than 6 months graphics/linux-XnViewMP||2015-11-28|Has expired: Broken for more than 6 months deskutils/akamaru||2015-11-28|Has expired: Broken for more than 6 months dns/p5-Net-DNS-ZoneCheck||2015-11-28|Has expired: Broken for more than 6 months astro/dgpsip||2015-11-28|Has expired: Broken for more than 6 months databases/pecl-handlersocket||2015-11-28|Has expired: Broken for more than 6 months audio/cymbaline||2015-11-28|Has expired: Broken for more than 6 months french/dico||2015-11-28|Has expired: Broken for more than 6 months audio/sonice||2015-11-28|Has expired: Broken for more than 6 months cad/geda-symbols||2015-11-28|Has expired: Broken for more than 6 months databases/java-mybatis||2015-11-28|Has expired: Broken for more than 6 months databases/openbase-jdbc||2015-11-28|Has expired: Broken for more than 6 months www/mediawiki119|www/mediawiki125|2015-11-28|Has expired: Please upgrade to mediawiki-1.25 www/R-cran-Rpad||2015-11-28|Has expired: Unmaintained upstream archivers/py-liblzma|archivers/py-pyliblzma|2015-11-30|Rename to match upstream (PyPI) naming archivers/fpc-paszlib||2015-12-05|Eliminated during FPC upgrade to 3.0.0 audio/fpc-sndfile||2015-12-05|Eliminated during FPC upgrade to 3.0.0 devel/fpc-fcl-process||2015-12-05|Eliminated during FPC upgrade to 3.0.0 devel/fpc-fpmkunit||2015-12-05|Eliminated during FPC upgrade to 3.0.0 multimedia/fpc-matroska||2015-12-05|Eliminated during FPC upgrade to 3.0.0 security/fpc-hash||2015-12-05|Eliminated during FPC upgrade to 3.0.0 www/jetty|www/jetty8|2015-12-06|Rename to prepare for jetty9 devel/pyinstaller|devel/py-pyinstaller|2015-12-09|Add py- prefix to directory name math/why3-gpl|math/why3-spark|2015-12-10|Change why3 suffix (upstream request and for consistency) devel/py-memoryprofiler|devel/py-memory_profiler|2015-12-11|Rename to consistency with other Python ports print/py-cups|print/py-pycups|2015-12-11|Renamed to match upstream naming devel/jep|devel/py-jep|2015-12-11|Renamed to match upstream naming ftp/py-curl|ftp/py-pycurl|2015-12-13|Renamed to match upstream naming www/py-django-pipeline12||2015-12-15|Has expired: Django 1.4 extended support ended on 2015-10-01 www/py-django14||2015-12-15|Has expired: Django 1.4 extended support ended on 2015-10-01 net/py-pysphere|net/py-pyvmomi|2015-12-15|Has expired: No longer maintained, please use net/py-pyvmomi by VMware ftp/ftpcube||2015-12-15|Has expired: No releases for 8+ years, no supporting newer wxWidget astro/libroadnav||2015-12-15|Has expired: No releases for 8+ years, no supporting newer wxWidget astro/roadnav||2015-12-15|Has expired: No releases for 8+ years, no supporting newer wxWidget www/joomla15||2015-12-18|Has expired: Joomla 1.5.x reached its End of Life in September 2012. Please update to a current version www/joomla25||2015-12-18|Has expired: Joomla 2.5.x reached its End of Life in December 2014. Please update to a current version devel/rubygem-tins0||2015-12-18|Has expired: not used by other ports anymore sysutils/busybox-unstable|sysutils/busybox|2015-12-20|Stable version is more current editors/calligra-l10n-ia||2015-12-21|Not shipped by Calligra 2.9.10 editors/calligra-l10n-nds||2015-12-21|Not shipped by Calligra 2.9.10 editors/calligra-l10n-sl||2015-12-21|Not shipped by Calligra 2.9.10 japanese/ochusha||2015-12-25|Has expired: Development ceased in 2008, other options available sysutils/phttpget||2015-12-27|Already in base system (/usr/libexec/phttpget) editors/sublime|editors/linux-sublime|2015-12-29|Renamed (Linux binary port) dns/py-dns3|dns/py-py3dns|2015-12-29|Renamed to match upstream naming editors/sublime3|editors/linux-sublime3|2015-12-29|Renamed (Linux binary port) mail/py-spf|mail/py-pyspf|2015-12-29|Renamed to match upstream naming databases/py-memcached|databases/py-python-memcached|2015-12-30|Renamed to match upstream naming devel/py-hashring|devel/py-hash_ring|2015-12-30|Renamed to match upstream naming devel/subversion17|devel/subversion|2015-12-30|Has expired: EoL, use devel/subversion www/ocsigen||2015-12-30|Has expired: Broken for more than 6 months devel/monodevelop-database||2015-12-30|Has expired: Broken for more than 6 months lang/cduce||2015-12-30|Has expired: Broken for more than 6 months science/hdf-java||2015-12-30|Has expired: Broken for more than 6 months math/p5-Math-Geometry-Planar-GPC-Polygon||2015-12-30|Has expired: Broken for more than 6 months www/eliom||2015-12-30|Has expired: Depends on broken and expiring www/ocsigen audio/py-fastaudio||2015-12-30|Has expired: Broken for more than 6 months devel/jgoodies-common||2015-12-30|Has expired: Broken for more than 6 months graphics/pinta||2015-12-30|Has expired: Broken for more than 6 months games/kanatest||2015-12-30|Has expired: Broken for more than 6 months editors/bless||2015-12-30|Has expired: Broken for more than 6 months security/burpsuite||2015-12-30|Has expired: Broken for more than 6 months dns/bind10|dns/bundy|2015-12-31|Has expired: Is not developed any more, use dns/bundy lang/perl5.16||2015-12-31|Has expired: Unsupported, please upgrade to a more recent version of Perl devel/py-distutils-extra|devel/py-python-distutils-extra|2015-12-31|Renamed to match upstream naming irc/irssi-devel||2016-01-01|Has expired: Older than irc/irssi multimedia/spotify-websocket-api||2016-01-01|Has expired: login fails due to protocol changes net-mgmt/unifi2|net-mgmt/unifi3|2016-01-01|Has expired: Unifi 2.x is EoL. Please upgrade to net-mgmt/unifi3 misc/kde4-l10n-th||2016-01-01|Has expired: Upstream ceased maintainance of this translation misc/kde4-l10n-tg||2016-01-01|Has expired: Upstream ceased maintainance of this translation misc/kde4-l10n-si||2016-01-01|Has expired: Upstream ceased maintainance of this translation games/supertux-devel|games/supertux2|2016-01-05|Renamed along with update to new stable release games/duke3d-data||2016-01-06|Incorporated into games/eduke32 devel/msp430-gdb|devel/gcc-msp430-ti-toolchain|2016-01-08|Has expired: Obsolete. Please, use devel/gcc-msp430-ti-toolchain devel/msp430-gcc|devel/gcc-msp430-ti-toolchain|2016-01-08|Has expired: Obsolete. Please, use devel/gcc-msp430-ti-toolchain devel/msp430mcu|devel/gcc-msp430-ti-toolchain|2016-01-08|Has expired: Obsolete. Please, use devel/gcc-msp430-ti-toolchain devel/msp430-libc|devel/gcc-msp430-ti-toolchain|2016-01-08|Has expired: Obsolete. Please, use devel/gcc-msp430-ti-toolchain devel/msp430-binutils|devel/gcc-msp430-ti-toolchain|2016-01-08|Has expired: Obsolete. Please, use devel/gcc-msp430-ti-toolchain devel/e_dbus||2016-01-15|Has expired: Not used anymore by x11-wm/enlightenment www/xpi-locale-switcher||2016-01-15|Has expired: incompatible with Firefox 34 (and later presumably) textproc/py-gettext|textproc/py-python-gettext|2016-01-16|Renamed to match upstream name archivers/jzip.org||2016-01-24|Has expired: Abandoned, outdated (no updates since 2003) databases/mywwwatcher||2016-01-25|Has expired: PHP 5.4 EOL reached databases/php5-creole||2016-01-25|Has expired: PHP 5.4 EOL reached databases/php5-propel||2016-01-25|Has expired: PHP 5.4 EOL reached deskutils/fengoffice||2016-01-25|Has expired: PHP 5.4 EOL reached devel/simpletest||2016-01-25|Has expired: PHP 5.4 EOL reached graphics/php5-swfed||2016-01-25|Has expired: PHP 5.4 EOL reached sysutils/loganalyzer||2016-01-25|Has expired: PHP 5.4 EOL reached textproc/simplehtmldom||2016-01-25|Has expired: PHP 5.4 EOL reached www/autoindex2||2016-01-25|Has expired: PHP 5.4 EOL reached www/cakephp11||2016-01-25|Has expired: PHP 5.4 EOL reached www/cakephp13||2016-01-25|Has expired: PHP 5.4 EOL reached www/cakephp21||2016-01-25|Has expired: PHP 5.4 EOL reached www/cakephp22||2016-01-25|Has expired: PHP 5.4 EOL reached www/cakephp23||2016-01-25|Has expired: PHP 5.4 EOL reached www/fluxcms||2016-01-25|Has expired: PHP 5.4 EOL reached www/fusionpbx||2016-01-25|Has expired: PHP 5.4 EOL reached www/jawstats||2016-01-25|Has expired: PHP 5.4 EOL reached www/ojs2||2016-01-25|Has expired: PHP 5.4 EOL reached www/webcalendar||2016-01-25|Has expired: PHP 5.4 EOL reached devel/i386-linux-binutils||2016-01-26|Not any usage in the ports tree www/xpi-bookmarkdd||2016-01-30|Has expired, incompatible with Firefox 34+ databases/php5-redis||2016-01-30|Has expired: PHP 5.4 EOL reached, use databases/php55-redis or databases/php56-redis instead audio/linux-c6-pulseaudio-libs-glib2||2016-01-31|Integrated into audio/linux-c6-pulseaudio-libs devel/pdcurses-the||2016-02-01|Has expired: Seperate port is no longer needed, see PR www/py-django17||2016-02-01|Has expired: End of extended support: December 1, 2015 www/codeigniter22|www/codeigniter|2016-02-01|Has expired: Codeigniter 2.2.x reached its End of Life on 31 October 2015. Please update to the current version java/wildfly80||2016-02-01|Has expired: Fully EOL when version 8.2 was released java/wildfly81||2016-02-01|Has expired: Fully EOL when version 9.0 was released mail/phpmailer2|mail/phpmailer|2016-02-01|Has expired: Obsolete, use mail/phpmailer instead cad/pycam|cad/py-pycam|2016-02-02|Add py- prefix to directory name lang/python32||2016-02-02|Has expired: Full EOL reached. Please update to Python 3.5 devel/py-setuptools32||2016-02-02|Has expired: Full EOL reached. Please update to Python 3.5 databases/py32-gdbm||2016-02-02|Has expired: Full EOL reached. Please update to Python 3.5 databases/py32-sqlite3||2016-02-02|Has expired: Full EOL reached. Please update to Python 3.5 x11-toolkits/py32-tkinter||2016-02-02|Has expired: Full EOL reached. Please update to Python 3.5 sysutils/puppet|sysutils/puppet38|2016-02-05|Renamed devel/etcdctl|devel/etcd|2016-02-06|Has expired: etcdctl is now part of etcd, following the change from the upstream security/polarssl||2016-02-07|Has expired: Upstream is ending support for 1.2.x multimedia/xbmc-addon-pvr||2016-02-12|Has expired: Does not work with multimedia/kodi 15.x and newer security/py-openid|security/py-python-openid|2016-02-13|Renamed to match upstream (PyPI) name ports-mgmt/tinderbox-devel|ports-mgmt/tinderbox|2016-02-14|Has expired: use newer stable version (ports-mgmt/tinderbox) deskutils/alacarte||2016-02-14|Not part of GNOME anymore deskutils/gnome-shell-extension-calculator||2016-02-14|Obsolete. gnome-calculator provides the functionality since GNOME 3.14 archivers/php5-bz2||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php archivers/php5-phar||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php archivers/php5-zip||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php archivers/php5-zlib||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php converters/php5-iconv||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php converters/php5-mbstring||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php converters/php5-recode||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php databases/php5-dba||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php databases/php5-interbase||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php databases/php5-mssql||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php databases/php5-mysql||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php databases/php5-mysqli||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php databases/php5-odbc||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php databases/php5-pdo||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php databases/php5-pdo_dblib||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php databases/php5-pdo_firebird||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php databases/php5-pdo_mysql||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php databases/php5-pdo_odbc||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php databases/php5-pdo_pgsql||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php databases/php5-pdo_sqlite||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php databases/php5-pgsql||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php databases/php5-sqlite3||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php databases/php5-sybase_ct||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php devel/php5-gettext||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php devel/php5-json||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php devel/php5-pcntl||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php devel/php5-readline||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php devel/php5-shmop||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php devel/php5-sysvmsg||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php devel/php5-sysvsem||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php devel/php5-sysvshm||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php devel/php5-tokenizer||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php ftp/php5-curl||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php ftp/php5-ftp||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php graphics/php5-exif||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php graphics/php5-gd||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php lang/php5||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php lang/php5-extensions||2016-02-14|PHP 5.4 EOL reached mail/php5-imap||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php math/php5-bcmath||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php math/php5-gmp||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php misc/php5-calendar||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php net/php5-ldap||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php net/php5-soap||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php net/php5-sockets||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php net/php5-xmlrpc||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php net-mgmt/php5-snmp||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php security/php5-filter||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php security/php5-hash||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php security/php5-mcrypt||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php security/php5-openssl||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php sysutils/php5-fileinfo||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php sysutils/php5-posix||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php textproc/php5-ctype||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php textproc/php5-dom||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php textproc/php5-pspell||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php textproc/php5-simplexml||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php textproc/php5-wddx||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php textproc/php5-xml||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php textproc/php5-xmlreader||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php textproc/php5-xmlwriter||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php textproc/php5-xsl||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php www/mod_php5||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php www/pecl-zendopcache||2016-02-14|PHP 5.4 EOL reached www/php5-session||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php www/php5-tidy||2016-02-14|PHP 5.4 is End of Life http://php.net/supported-versions.php mail/pronto||2016-02-18|No release since 2002 http://www.muhri.net/pronto/page.php3?node=news russian/muttprint||2016-02-25|The Russian translation is included in print/muttprint security/openssh-portable-devel|security/openssh-portable|2016-02-29|Outdated and insecure, use the main port audio/audacious-dumb||2016-02-29|Has expired: Broken for more than 6 months net/rubygem-amqp067|net/rubygem-bunny|2016-02-29|Has expired: Upstream prefers net/rubygem-bunny devel/py-unittestplus||2016-02-29|Has expired: Tarballs and upstream website disappeared net/samba4||2016-03-02|Has expired: not supported by the upstream net/isc-dhcp42-client|net/isc-dhcp43-client|2016-03-02|Has expired: isc-dhcp 4.2 is End of Life net/isc-dhcp41-relay|net/isc-dhcp43-relay|2016-03-02|Has expired: isc-dhcp 4.1 is now End of Life net/isc-dhcp42-relay|net/isc-dhcp43-relay|2016-03-02|Has expired: isc-dhcp 4.2 is End of Life net/isc-dhcp41-client|net/isc-dhcp43-client|2016-03-02|Has expired: isc-dhcp 4.1 is now End of Life net/isc-dhcp42-server|net/isc-dhcp43-server|2016-03-02|Has expired: isc-dhcp 4.2 is End of Life devel/pear-IO_Bit||2016-03-02|Has expired: Unsupported upstream graphics/pear-IO_SWF||2016-03-02|Has expired: Unsupported upstream math/k3dsurf|math/mathmod|2016-03-04|K3DSurf was the previous release, based on Qt3, MathMod is the new one, based on Qt5 databases/mysql-workbench52||2016-03-05|Has expired: Broken for more than 6 months math/geogebra-i18n|math/geogebra|2016-03-06|Portname simplified devel/seed||2016-03-06|Has expired: No longer used devel/seed3||2016-03-06|Has expired: No longer used audio/waheela||2016-03-06|Has expired: Distfiles unavailable and no updates in 6 years sysutils/logstash-contrib||2016-03-06|Has expired: Upstream now distributing plugins separately: see https://github.com/logstash-plugins devel/p5-DateTime-Event-SolarTerm|devel/p5-DateTime-Astro|2016-03-07|Has been part of DateTime-Astro for a long time devel/p5-DateTime-Util-Astro|devel/p5-DateTime-Astro|2016-03-07|Has been part of DateTime-Astro for a long time security/regripperplugins||2016-03-07|Merged into security/regripper textproc/elasticsearch-plugin-marvel2|textproc/elasticsearch2-plugin-marvel|2016-03-10|Rename to match other Elasticsearch 2 plugins print/cups-base|print/cups|2016-03-11|Merged print/cups-client|print/cups|2016-03-11|Merged print/cups-image|print/cups|2016-03-11|Merged print/cups-pstoraster|print/cups-filters|2016-03-11|Obsolete russian/MT||2016-03-13|Has expired: Reached it's EOL in September 2015 www/MT||2016-03-13|Has expired: Reached it's EOL in September 2015 security/openvas-libnasl|security/openvas-libraries|2016-03-17|Merged security/openvas-server|security/openvas-scanner|2016-03-17|Renamed security/openvas-plugins|security/openvas-scanner|2016-03-17|Merged security/openvas-client||2016-03-17|Discontinued, try security/greenbone-security-assistant devel/py-icu|devel/py-pyicu|2016-03-19|Renamed to match upstream (PyPI) name www/eaccelerator||2016-03-20|Has expired: cannot be installed: doesn't work with lang/php56 port (doesn't support PHP 5.5 5.6 70) devel/pecl-inclued||2016-03-20|Has expired: cannot be installed: doesn't work with lang/php56 port (doesn't support PHP 5.5 5.6 70) security/pecl-taint||2016-03-20|Has expired: cannot be installed: doesn't work with lang/php56 port (doesn't support PHP 5.5 5.6 70) net/libnids-libnet11|net/libnids|2016-03-20|Same content lang/cloudabi-clang|devel/cloudabi-toolchain|2016-03-21|Merged graphics/hugin-devel||2016-03-22|overtaken by released version graphics/hugin-2016||2016-03-22|overtaken by released version net/rubygem-omniauth-cas3||2016-03-28|Removed textproc/libvisio||2016-03-28|No longer used by other ports: use textproc/libvisio01 instead textproc/libe-book00||2016-03-28|No longer used by other ports: use textproc/libe-book instead devel/erlang-ssl_verify_hostname|devel/erlang-ssl_verify_fun|2016-03-28|Project renamed graphics/libtxc_dxtn|graphics/s2tc|2016-03-29|Superseded by graphics/s2tc www/session2||2016-03-29|Has expired: That is a part of Quixote webapp framework we no longer have in ports www/py-django-pipeline14||2016-03-29|Has expired: This port depends upon expired www/py-django16 and have no consumers textproc/libwpd||2016-03-29|Has expired: Not used any more graphics/libwpg||2016-03-29|Has expired: Not used any more textproc/libwps02||2016-03-29|Has expired: Not used any more textproc/libabw00||2016-03-29|Has expired: Not used any more databases/cassandra||2016-03-29|Has expired: 1.2.x has reached EOL, upgrade to a supported version of Cassandra databases/rubygem-after_commit_queue-rails41|databases/rubygem-after_commit_queue|2016-03-31|Has expired: Rails 4.1 is no longer supported - please switch to Rails 4.2 textproc/rubygem-jekyll-assets1|textproc/rubygem-jekyll-assets|2016-03-31|Has expired: Use textproc/rubygem-jekyll-assets instead devel/rubygem-sprockets-rails-rails41|devel/rubygem-sprockets-rails|2016-03-31|Has expired: Rails 4.1 is no longer supported - please switch to Rails 4.2 mail/rubygem-actionmailer41|mail/rubygem-actionmailer4|2016-03-31|Has expired: Rails 4.1 is no longer supported - please switch to Rails 4.2 databases/rubygem-activemodel41|databases/rubygem-activemodel4|2016-03-31|Has expired: Rails 4.1 is no longer supported - please switch to Rails 4.2 devel/rubygem-activesupport41|devel/rubygem-activesupport4|2016-03-31|Has expired: Rails 4.1 is no longer supported - please switch to Rails 4.2 www/rubygem-actionpack41|www/rubygem-actionpack4|2016-03-31|Has expired: Rails 4.1 is no longer supported - please switch to Rails 4.2 devel/rubygem-actionview41|devel/rubygem-actionview|2016-03-31|Has expired: Rails 4.1 is no longer supported - please switch to Rails 4.2 databases/rubygem-paranoia-rails41|databases/rubygem-paranoia|2016-03-31|Has expired: Rails 4.1 is no longer supported - please switch to Rails 4.2 databases/rubygem-activerecord41|databases/rubygem-activerecord4|2016-03-31|Has expired: Rails 4.1 is no longer supported - please switch to Rails 4.2 textproc/rubygem-sass-rails4-rails41|textproc/rubygem-sass-rails4|2016-03-31|Has expired: Rails 4.1 is no longer supported - please switch to Rails 4.2 www/rubygem-turbolinks-rails41|www/rubygem-turbolinks|2016-03-31|Has expired: Rails 4.1 is no longer supported - please switch to Rails 4.2 devel/rubygem-omniauth_crowd-rails41|devel/rubygem-omniauth_crowd|2016-03-31|Has expired: Rails 4.1 is no longer supported - please switch to Rails 4.2 www/rubygem-railties41|www/rubygem-railties4|2016-03-31|Has expired: Rails 4.1 is no longer supported - please switch to Rails 4.2 devel/rubygem-jbuilder-rails41|devel/rubygem-jbuilder|2016-03-31|Has expired: Rails 4.1 is no longer supported - please switch to Rails 4.2 textproc/py-genshi-devel|textproc/py-genshi|2016-03-31|Has expired: The port is no longer updated and behind the main genshi port www/py-satchmo||2016-04-03|Has expired: Project development unmaintained www/py-ua-parser|devel/py-ua_parser|2016-04-04|Duplicate port deleted net-mgmt/weathermap||2016-04-04|Has expired: Distfile unavailable, website no longer exists accessibility/gnopernicus|accessibility/orca|2016-04-08|Has expired: Not developed upstream anymore. Obsoleted by accessibility/orca textproc/p5-ElasticSearch-SearchBuilder|textproc/p5-Search-Elasticsearch|2016-04-10|Has expired: Use textproc/p5-Search-Elasticsearch which is the official client textproc/p5-ElasticSearch-legacy|textproc/p5-Search-Elasticsearch|2016-04-10|Has expired: Use textproc/p5-Search-Elasticsearch which is the official client textproc/py-openpyxl1|textproc/py-openpyxl|2016-04-10|Has expired: Use textproc/py-openpyxl instead devel/libmcs||2016-04-13|Development no longer active and is not used any more www/node-devel|www/node|2016-04-13|Upstream no longer releases a development version graphics/kipi-plugin-googledrive||2016-04-14|Merged into graphics/kipi-plugin-googleservices graphics/kipi-plugin-picasawebexport||2016-04-14|Merged into graphics/kipi-plugin-googleservices security/engine_pkcs11|security/libp11|2016-04-20|Merged devel/elixir-timex-interval||2016-04-22|Merged into devel/elixir-timex upstream devel/p5-Test-Stream|devel/p5-Test2-Suite|2016-04-23|Use devel/p5-Test2-Suite instead deskutils/qlabels||2016-04-23|Has expired: Does not fetch, unmaintained french/tvdownloader||2016-04-23|Has expired: Many channels have modified their protocols and cannot be DL anymore comms/cdr_read||2016-04-23|Has expired: unfetchable russian/rubygem-rutils||2016-04-23|Has expired: Deprecated by upstream devel/rubygem-dotenv-deployment||2016-04-23|Has expired: Deprecated by upstream in latest version (0.3.0) www/p5-LWP-ConsoleLogger||2016-04-23|Has expired: Depends on expiring www/p5-HTTP-CookieMonster www/p5-WWW-Mechanize-Cached||2016-04-23|Has expired: Depends on expiring www/p5-HTTP-CookieMonster www/p5-HTTP-CookieMonster||2016-04-23|Has expired: Broken for more than 6 months misc/diary-hercules||2016-04-23|Has expired: Broken for more than 6 months graphics/ffff||2016-04-23|Has expired: Broken for more than 6 months net-im/sigram||2016-04-23|Has expired: Broken for more than 6 months games/annelid||2016-04-23|Has expired: Broken for more than 6 months science/py-pydap||2016-04-23|Has expired: Broken for more than 6 months sysutils/su2||2016-04-23|Has expired: Broken for more than 6 months www/download-gemist||2016-04-23|Has expired: Broken for more than 6 months databases/p5-qdbm||2016-04-23|Has expired: Broken for more than 6 months deskutils/ladon||2016-04-23|Has expired: Broken for more than 6 months java/linux-sun-jdk17||2016-04-24|Has expired: Unsupported and known for multiple security vulnerabilities devel/compiler-rt-devel|devel/llvm-devel|2016-04-24|Folded back in to devel/llvm-devel databases/rrdtool10|databases/rrdtool|2016-05-02|Old version, not maintained any more devel/sope|devel/sope2|2016-05-02|Renamed to devel/sope2 www/sogo|www/sogo2|2016-05-02|Renamed to www/sogo2 www/sogo-activesync|www/sogo2-activesync|2016-05-02|Renamed to www/sogo2-activesync textproc/rubygem-gherkin3|textproc/rubygem-gherkin|2016-05-03|Has expired: Use textproc/rubygem-gherkin instead dns/odsclient||2016-05-03|Has expired: ODS shuts service down, so client is probably useless games/Cockatrice|games/cockatrice|2016-05-05|Renamed to games/cockatrice graphics/py-opengl|graphics/py-PyOpenGL|2016-05-09|Use correct upstream PyPI name graphics/py-opengl-accelerate|graphics/py-PyOpenGL-accelerate|2016-05-09|Use correct upstream PyPI name java/linux-sun-jre17||2016-05-09|Has expired: Unsupported and known for multiple security vulnerabilities deskutils/gnustep-notebook||2016-05-09|Has expired: Does not fetch lang/moscow_ml|lang/mosml|2016-05-11|Project renamed devel/rubygem-redmine_acts_as_taggable_on|www/rubygem-redmine_acts_as_taggable_on|2016-05-14|Duplicate port lang/gcc-aux||2016-05-16|Has expired: Use newer lang/gcc5-aux or lang/gcc6-aux compilers instead audio/deadbeef-mpris-plugin|audio/deadbeef-mpris2-plugin|2016-05-16|Has expired: Abandonware; use `audio/deadbeef-mpris2-plugin' instead net/samba41||2016-05-16|Has expired: not supported by the upstream databases/postgresql90-contrib||2016-05-16|Has expired: "EOL was reached in September 2015" databases/postgresql90-pltcl||2016-05-16|Has expired: "EOL was reached in September 2015" databases/postgresql90-docs||2016-05-16|Has expired: "EOL was reached in September 2015" devel/py-gyp-devel|devel/py-gyp|2016-05-16|Renamed to devel/py-gyp databases/py-sqlalchemy|databases/py-sqlalchemy07|2016-05-18|Renamed to databases/py-sqlalchemy07 databases/py-sqlalchemy-devel|databases/py-sqlalchemy08|2016-05-18|Renamed to databases/py-sqlalchemy08 sysutils/relaunchd|sysutils/jobd|2016-05-20|Renamed to sysutils/jobd dns/nsd3|dns/nsd|2016-05-20|Has expired: NSD 3 is EOL, please upgrade to NSD 4 in dns/nsd security/easypg||2016-05-22|Has expired: Included into emacs since 2.3 misc/kdehier4||2016-05-25|Not used since 2014 devel/maven-ant-tasks||2016-05-27|Use Maven directly graphics/py-imaging|graphics/py-pillow|2016-05-28|Has expired: Unmaintained upstream; use graphics/py-pillow databases/py-psycopg|databases/py-psycopg2|2016-05-29|Has expired: This port is obsoleted by databases/py-psycopg2 security/py-clamav|security/py-pyclamd|2016-05-30|Has expired: Not updated since 2008 by upstream and abandoned in favor of pyClamd (security/py-pyclamd) graphics/ruby-gdal||2016-05-31|Has expired: disabled by upstream (https://trac.osgeo.org/gdal/changeset/28756) net/omcmd||2016-06-01|Has expired: Unfetchable and depends on expired net/isc-dhcp41-server net/isc-dhcp41-server|net/isc-dhcp43-server|2016-06-01|Has expired: isc-dhcp 4.1 is now End of Life lang/ruby20||2016-06-01|Has expired: Upstream support ended java/rubygem-rjb||2016-06-02|Has expired: fails to create JVM devel/rubygem-atoulme-antwrap||2016-06-02|Removed, depends on java/rubygem-rjb net/xmlrpc-c-devel||2016-06-11|Retired, older than net/xmlrpc-c www/drupal6-content_access||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-google_analytics||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-seo_checklist||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-pathauto||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-wysiwyg||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-advanced_help||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-path_redirect||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-webform||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-imce||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-mimedetect||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-tagadelic||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-panels||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-zeropoint||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-geshifilter||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-chaos||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-token||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-print||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-nodewords||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-image||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-menu_block||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-views||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-services||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-ckeditor||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-nice_menus||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-page_title||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6-cck||2016-06-18|Has expired: www/drupal6 upstream is EOL and port expired 2016-04-24 www/drupal6||2016-06-18|Has expired: EOL upstream as of 2016-02-24 x11-toolkits/gtk-sharp10||2016-06-20|Nothing depends on it; superseded by gtk-sharp20 and gtk-sharp30 devel/p5-ReadLine-Perl|devel/p5-Term-ReadLine-Perl|2016-06-21|Duplicates devel/p5-ReadLine-Gnu|devel/p5-Term-ReadLine-Gnu|2016-06-21|Rename to match upstream devel/p5-ReadLine-TTYtter|devel/p5-Term-ReadLine-TTYtter|2016-06-21|Rename to match upstream databases/postgresql90-client||2016-06-21|Postgresql 9.0 EoL Upstream as of September 2015 databases/postgresql90-pgtcl||2016-06-21|Postgresql 9.0 EoL Upstream as of September 2015 databases/postgresql90-plperl||2016-06-21|Postgresql 9.0 EoL Upstream as of September 2015 databases/postgresql90-plpython||2016-06-21|Postgresql 9.0 EoL Upstream as of September 2015 databases/postgresql90-server||2016-06-21|Postgresql 9.0 EoL Upstream as of September 2015 graphics/linux-c6-dri-compat|graphics/linux-c6-dri|2016-06-22|Obsolete security/py-letsencrypt|security/py-certbot|2016-06-23|The LetsEncrypt project has renamed the utility textproc/py-beautifulsoup4|www/py-beautifulsoup|2016-06-26|Duplicate port deleted textproc/kibana42|textproc/kibana45|2016-06-27|Has expired: not actively supported - use kibana 4.5 (textproc/kibana45) instead graphics/libchamplain08||2016-06-30|Has expired: Old version, not needed any more sysutils/syslog-ng35||2016-06-30|Has expired: EOL, no longer supported by bababit.hu sysutils/syslog-ng34||2016-06-30|Has expired: EOL, no longer supported by bababit.hu devel/jenkins2|devel/jenkins|2016-06-30|Has expired: Use devel/jenkins www/p5-WWW-Google-Notebook||2016-06-30|Has expired: Google Notebook has shut down sysutils/syslog-ng-incubator03||2016-06-30|Has expired: EOL, no longer supported by bababit.hu www/node5|www/node|2016-07-01|Has expired: upstream support has ended, use www/node instead devel/p5-Test2|devel/p5-Test-Simple|2016-07-02|Has expired: Test2 has been merged into Test-Simple distribution security/openpgpsdk||2016-07-04|Has expired: Broken for more than 6 months security/radiusniff||2016-07-04|Has expired: Broken for more than 6 months security/pear-Auth_OpenID||2016-07-04|Has expired: Broken for more than 6 months security/sshit||2016-07-04|Has expired: Broken for more than 6 months security/ifd-slb_rf60||2016-07-04|Has expired: Broken for more than 6 months security/rainbowcrack||2016-07-04|Has expired: Broken for more than 6 months security/vlog||2016-07-04|Has expired: Broken for more than 6 months security/cryptstring||2016-07-04|Has expired: Broken for more than 6 months x11/libdnd||2016-07-04|Has expired: Broken for more than 6 months x11/xlupe||2016-07-04|Has expired: Broken for more than 6 months x11/xco||2016-07-04|Has expired: Broken for more than 6 months x11/xclick||2016-07-04|Has expired: Broken for more than 6 months devel/ocfpcsc||2016-07-04|Has expired: Broken for more than 6 months devel/dits||2016-07-04|Has expired: Broken for more than 6 months devel/ruby-cache||2016-07-04|Has expired: Broken for more than 6 months devel/rapidsvn||2016-07-04|Has expired: Broken for more than 6 months devel/svnkit||2016-07-04|Has expired: Broken for more than 6 months devel/py-EnthoughtBase||2016-07-04|Has expired: Broken for more than 6 months devel/cl-uffi||2016-07-04|Has expired: Broken for more than 6 months devel/ruby-event-loop||2016-07-04|Has expired: Broken for more than 6 months devel/libqxt||2016-07-04|Has expired: Broken for more than 6 months devel/dasm||2016-07-04|Has expired: Broken for more than 6 months devel/libopendaap||2016-07-04|Has expired: Broken for more than 6 months devel/cl-uffi-sbcl||2016-07-04|Has expired: Depends on expiring devel/cl-uffi devel/cvs2p4||2016-07-04|Has expired: Broken for more than 6 months devel/bufferpool||2016-07-04|Has expired: Broken for more than 6 months devel/ifd-test||2016-07-04|Has expired: Broken for more than 6 months devel/eric4||2016-07-04|Has expired: Broken for more than 6 months devel/uclmmbase||2016-07-04|Has expired: Broken for more than 6 months devel/obfuscatejs||2016-07-04|Has expired: Broken for more than 6 months devel/libbnr||2016-07-04|Has expired: Broken for more than 6 months devel/c4||2016-07-04|Has expired: Broken for more than 6 months devel/memcheck||2016-07-04|Has expired: Broken for more than 6 months devel/liblcfg||2016-07-04|Has expired: Broken for more than 6 months devel/svndelta||2016-07-04|Has expired: Broken for more than 6 months devel/papp||2016-07-04|Has expired: Broken for more than 6 months devel/mk||2016-07-04|Has expired: Broken for more than 6 months devel/avltree||2016-07-04|Has expired: Broken for more than 6 months devel/cbind||2016-07-04|Has expired: Broken for more than 6 months devel/tclgetopts||2016-07-04|Has expired: Broken for more than 6 months devel/antlrworks||2016-07-04|Has expired: Broken for more than 6 months devel/acme||2016-07-04|Has expired: Broken for more than 6 months devel/libopensync022||2016-07-04|Has expired: Broken for more than 6 months archivers/epkg||2016-07-04|Has expired: Broken for more than 6 months print/enscriptfonts||2016-07-04|Has expired: Broken for more than 6 months print/mup||2016-07-04|Has expired: Broken for more than 6 months lang/lua-mode.el||2016-07-04|Has expired: Broken for more than 6 months lang/s9fes||2016-07-04|Has expired: Broken for more than 6 months lang/alisp||2016-07-04|Has expired: Broken for more than 6 months lang/intel2gas||2016-07-04|Has expired: Broken for more than 6 months lang/stalin||2016-07-04|Has expired: Broken for more than 6 months french/eric4||2016-07-04|Has expired: Depends on expiring devel/eric4 textproc/exslt||2016-07-04|Has expired: Broken for more than 6 months textproc/xt||2016-07-04|Has expired: Broken for more than 6 months textproc/xslint||2016-07-04|Has expired: Broken for more than 6 months textproc/cbedic||2016-07-04|Has expired: Broken for more than 6 months textproc/tralics||2016-07-04|Has expired: Broken for more than 6 months textproc/docbookide.el||2016-07-04|Has expired: Broken for more than 6 months textproc/glpi-plugins-AdditionalReports||2016-07-04|Has expired: Broken for more than 6 months textproc/tdhkit||2016-07-04|Has expired: Broken for more than 6 months textproc/p5-Groonga-API||2016-07-04|Has expired: Broken for more than 6 months textproc/glpi-plugins-DataInjection||2016-07-04|Has expired: Broken for more than 6 months dns/ldnsm||2016-07-04|Has expired: Broken for more than 6 months japanese/guesswork-classic||2016-07-04|Has expired: Broken for more than 6 months japanese/texinfo||2016-07-04|Has expired: Broken for more than 6 months japanese/jyuroku||2016-07-04|Has expired: Broken for more than 6 months japanese/mtools||2016-07-04|Has expired: Broken for more than 6 months palm/pdbar||2016-07-04|Has expired: Broken for more than 6 months graphics/gplot||2016-07-04|Has expired: Broken for more than 6 months graphics/white_dune||2016-07-04|Has expired: Broken for more than 6 months graphics/whirlgif||2016-07-04|Has expired: Broken for more than 6 months graphics/libaux||2016-07-04|Has expired: Broken for more than 6 months graphics/import-pictures||2016-07-04|Has expired: Broken for more than 6 months math/xgobi||2016-07-04|Has expired: Broken for more than 6 months math/dcdflib||2016-07-04|Has expired: Broken for more than 6 months math/libneural||2016-07-04|Has expired: Broken for more than 6 months math/open-axiom||2016-07-04|Has expired: Broken for more than 6 months irc/nefarious||2016-07-04|Has expired: Broken for more than 6 months irc/slirc||2016-07-04|Has expired: Broken for more than 6 months irc/qwebirc||2016-07-04|Has expired: Broken for more than 6 months biology/platon||2016-07-04|Has expired: Broken for more than 6 months news/slnr||2016-07-04|Has expired: Broken for more than 6 months science/jmol||2016-07-04|Has expired: Broken for more than 6 months net/nstxd||2016-07-04|Has expired: Broken for more than 6 months net/sprinkle||2016-07-04|Has expired: Broken for more than 6 months editors/ssam||2016-07-04|Has expired: Broken for more than 6 months editors/fb||2016-07-04|Has expired: Broken for more than 6 months misc/quotes||2016-07-04|Has expired: Broken for more than 6 months misc/boxquote.el||2016-07-04|Has expired: Broken for more than 6 months misc/pypanda||2016-07-04|Has expired: Broken for more than 6 months misc/cuecat||2016-07-04|Has expired: Broken for more than 6 months deskutils/displaycalibrator||2016-07-04|Has expired: Broken for more than 6 months german/eric4||2016-07-04|Has expired: Depends on expiring devel/eric4 multimedia/vic||2016-07-04|Has expired: Depends on expiring devel/uclmmbase multimedia/ggrab||2016-07-04|Has expired: Broken for more than 6 months emulators/dynamips||2016-07-04|Has expired: Broken for more than 6 months emulators/dynamips-devel||2016-07-04|Has expired: Broken for more than 6 months emulators/sim6811||2016-07-04|Has expired: Broken for more than 6 months emulators/minivmac||2016-07-04|Has expired: Broken for more than 6 months cad/qcad-partslib||2016-07-04|Has expired: Broken for more than 6 months comms/dump1090_mr||2016-07-04|Has expired: Broken for more than 6 months x11-fm/asfiles||2016-07-04|Has expired: Depends on expiring x11/libdnd x11-fonts/fonts-te||2016-07-04|Has expired: Broken for more than 6 months sysutils/rsyncmanager||2016-07-04|Has expired: Broken for more than 6 months sysutils/jfbterm||2016-07-04|Has expired: Broken for more than 6 months sysutils/daedalus||2016-07-04|Has expired: Broken for more than 6 months sysutils/pcfclock||2016-07-04|Has expired: Broken for more than 6 months sysutils/vlogger||2016-07-04|Has expired: Broken for more than 6 months sysutils/bontmia||2016-07-04|Has expired: Broken for more than 6 months mail/pop3gwd||2016-07-04|Has expired: Broken for more than 6 months mail/mailtray||2016-07-04|Has expired: Broken for more than 6 months mail/pflogstats||2016-07-04|Has expired: Broken for more than 6 months mail/exact||2016-07-04|Has expired: Broken for more than 6 months mail/wmpop3||2016-07-04|Has expired: Broken for more than 6 months mail/gld||2016-07-04|Has expired: Broken for more than 6 months mail/dsbl-testers||2016-07-04|Has expired: Broken for more than 6 months mail/vqregister||2016-07-04|Has expired: Broken for more than 6 months mail/atmail||2016-07-04|Has expired: Broken for more than 6 months mail/ml||2016-07-04|Has expired: Broken for more than 6 months net-im/icb||2016-07-04|Has expired: Broken for more than 6 months net-im/cicquin||2016-07-04|Has expired: Broken for more than 6 months net-im/pidgin-rhythmbox||2016-07-04|Has expired: Broken for more than 6 months russian/eric4||2016-07-04|Has expired: Depends on expiring devel/eric4 russian/fortune-bashorgru||2016-07-04|Has expired: Broken for more than 6 months www/xpi-clearfields||2016-07-04|Has expired: Broken for more than 6 months www/pecl-varnish||2016-07-04|Has expired: Broken for more than 6 months www/py-requests-oauth-hook||2016-07-04|Has expired: Broken for more than 6 months www/hudson||2016-07-04|Has expired: Broken for more than 6 months www/xpi-mldonkey||2016-07-04|Has expired: Broken for more than 6 months www/xpi-cookiesafe||2016-07-04|Has expired: Broken for more than 6 months www/trac-mastertickets||2016-07-04|Has expired: Broken for more than 6 months www/dotclear||2016-07-04|Has expired: Broken for more than 6 months www/ruby-wgettsv||2016-07-04|Has expired: Broken for more than 6 months www/wwwstat||2016-07-04|Has expired: Broken for more than 6 months www/xpi-prism||2016-07-04|Has expired: Broken for more than 6 months www/xpi-fasterfox||2016-07-04|Has expired: Broken for more than 6 months www/siteframe||2016-07-04|Has expired: Broken for more than 6 months www/py-urljr||2016-07-04|Has expired: Broken for more than 6 months www/reviewboard||2016-07-04|Has expired: Broken for more than 6 months www/xpi-tabletools||2016-07-04|Has expired: Broken for more than 6 months www/wikindx||2016-07-04|Has expired: Broken for more than 6 months www/typolight||2016-07-04|Has expired: Broken for more than 6 months www/varnish-libvmod-header||2016-07-04|Has expired: Broken for more than 6 months www/xpi-gbrain||2016-07-04|Has expired: Broken for more than 6 months www/trac-robotstxt||2016-07-04|Has expired: Broken for more than 6 months www/simplog||2016-07-04|Has expired: Broken for more than 6 months www/chtml||2016-07-04|Has expired: Broken for more than 6 months databases/postgresql_autodoc||2016-07-04|Has expired: Broken for more than 6 months databases/oracle_odbc_driver||2016-07-04|Has expired: Broken for more than 6 months databases/mysql-xql||2016-07-04|Has expired: Broken for more than 6 months databases/mysql-udf-sys||2016-07-04|Has expired: Broken for more than 6 months games/lucidlife||2016-07-04|Has expired: Broken for more than 6 months games/gma||2016-07-04|Has expired: Broken for more than 6 months games/smiley||2016-07-04|Has expired: Broken for more than 6 months games/noegnud-littlehack||2016-07-04|Has expired: Broken for more than 6 months games/sdlquake2||2016-07-04|Has expired: Broken for more than 6 months games/daimonin||2016-07-04|Has expired: Depends on expiring games/daimonin-music games/noegnud-nethack||2016-07-04|Has expired: Broken for more than 6 months games/xbomber||2016-07-04|Has expired: Broken for more than 6 months games/xwelltris||2016-07-04|Has expired: Broken for more than 6 months games/ftjava||2016-07-04|Has expired: Broken for more than 6 months games/daimonin-music||2016-07-04|Has expired: Broken for more than 6 months games/gno3dtet||2016-07-04|Has expired: Broken for more than 6 months games/qtv||2016-07-04|Has expired: Broken for more than 6 months games/xwordpy||2016-07-04|Has expired: Broken for more than 6 months games/netris||2016-07-04|Has expired: Broken for more than 6 months games/rt2-demo||2016-07-04|Has expired: Broken for more than 6 months games/noegnud-addons||2016-07-04|Has expired: Broken for more than 6 months games/noegnud-nethack-deet||2016-07-04|Has expired: Broken for more than 6 months games/live-f1||2016-07-04|Has expired: Broken for more than 6 months games/xonix||2016-07-04|Has expired: Broken for more than 6 months games/fgkicker||2016-07-04|Has expired: Broken for more than 6 months games/tank||2016-07-04|Has expired: Depends on expiring graphics/libaux games/linux-nwserver||2016-07-04|Has expired: Broken for more than 6 months games/quake2-zaero||2016-07-04|Has expired: Broken for more than 6 months games/pyching||2016-07-04|Has expired: Broken for more than 6 months games/thevalley||2016-07-04|Has expired: Broken for more than 6 months games/xroads||2016-07-04|Has expired: Broken for more than 6 months games/fxsudoku||2016-07-04|Has expired: Broken for more than 6 months games/sudoku||2016-07-04|Has expired: Broken for more than 6 months games/kmancala||2016-07-04|Has expired: Broken for more than 6 months games/plonx||2016-07-04|Has expired: Broken for more than 6 months games/wmminichess||2016-07-04|Has expired: Broken for more than 6 months games/noegnud-slashem||2016-07-04|Has expired: Broken for more than 6 months games/latrine||2016-07-04|Has expired: Broken for more than 6 months games/pysycache-themes||2016-07-04|Has expired: Broken for more than 6 months games/nibbles||2016-07-04|Has expired: Broken for more than 6 months games/hlstatsx||2016-07-04|Has expired: Broken for more than 6 months audio/streamtuner||2016-07-04|Has expired: Broken for more than 6 months audio/mangler||2016-07-04|Has expired: Broken for more than 6 months audio/hawkvoice||2016-07-04|Has expired: Broken for more than 6 months x11-wm/e-module-mpdule||2016-07-04|Has expired: Broken for more than 6 months x11-wm/e-module-tclock||2016-07-04|Has expired: Broken for more than 6 months x11-wm/musca||2016-07-04|Has expired: Broken for more than 6 months x11-wm/e-module-places||2016-07-04|Has expired: Broken for more than 6 months x11-wm/e-module-forecasts||2016-07-04|Has expired: Broken for more than 6 months x11-wm/e-module-net||2016-07-04|Has expired: Broken for more than 6 months x11-wm/e-module-penguins||2016-07-04|Has expired: Broken for more than 6 months ftp/fget||2016-07-04|Has expired: Broken for more than 6 months net-mgmt/netmond||2016-07-04|Has expired: Broken for more than 6 months net-mgmt/ipfm||2016-07-04|Has expired: Broken for more than 6 months textproc/py-dbf|databases/py-dbf|2016-07-05|Duplicate port deleted www/yahoo-ui||2016-07-05|Has expired: Broken for more than 6 months sysutils/moosefs-cgi|sysutils/moosefs2-cgi|2016-07-07|Moved to a numbered port name sysutils/moosefs-cgiserv|sysutils/moosefs2-cgiserv|2016-07-07|Moved to a numbered port name sysutils/moosefs-chunkserver|sysutils/moosefs2-chunkserver|2016-07-07|Moved to a numbered port name sysutils/moosefs-cli|sysutils/moosefs2-cli|2016-07-07|Moved to a numbered port name sysutils/moosefs-client|sysutils/moosefs2-client|2016-07-07|Moved to a numbered port name sysutils/moosefs-master|sysutils/moosefs2-master|2016-07-07|Moved to a numbered port name sysutils/moosefs-metalogger|sysutils/moosefs2-metalogger|2016-07-07|Moved to a numbered port name sysutils/moosefs-netdump|sysutils/moosefs2-netdump|2016-07-07|Moved to a numbered port name devel/gmake-lite|devel/gmake|2016-07-08|No longer needed devel/capstone|devel/capstone3|2016-07-10|Moved to a numbered port name to make place for capstone4 net-mgmt/unifi3|net-mgmt/unifi4|2016-07-10|Has expired: Unifi 3.x is EoL. Please upgrade to net-mgmt/unifi4 net/lam||2016-07-12|Has expired: Broken for more than 6 months java/wildfly82||2016-07-17|Has expired: Fully EOL when version 10.0 was released print/tex|print/texlive-base|2016-07-30|Superseded by texlive net/tridiavnc|net/tigervnc|2016-08-01|No upstream 2005 lang/pypy3-devel|lang/pypy3|2016-08-04|Renamed to lang/pypy3 net/qt5-enginio||2016-08-06|Has expired: Deprecated by upstream from Qt 5.6 on, do not use for development multimedia/linux-xmovie||2016-08-08|Has expired: Not maintained upstream, contains security issues multimedia/linux-realplayer||2016-08-09|Has expired: Not maintained upstream, contains security issues ports-mgmt/xps||2016-08-11|Has expired: Does not support pkg(8) cad/NASTRAN|cad/NASTRAN-95|2016-08-12|Rename to match PORTNAME and upstream name math/bamg||2016-08-14|No longer maintained upstream as is now part of freefem++ www/pecl-APC||2016-08-15|No longer maintained upstream, and not working with PHP > 5.4 textproc/libtext-wrapi18n-perl|textproc/p5-Text-WrapI18N|2016-08-15|Duplicate textproc/libtext-charwidth-perl|textproc/p5-Text-CharWidth|2016-08-15|Duplicate net-mgmt/netams||2016-08-18|Has expired: unmaintained, broken on most FreeBSD platforms emulators/kqemu-kmod||2016-08-26|Not supported in any qemu version anymore emulators/kqemu-kmod-devel||2016-08-26|Not supported in any qemu version anymore www/varnish-libvmod-saintmode|www/varnish-modules|2016-09-01|Upstream moved this module into the varnish-modules collection security/letskencrypt|security/acme-client|2016-09-02|Upstream renamed the project net/asterisk||2016-09-12|Has expired: Asterisk 1.8 reached EOL on 2015-10-21 www/mediawiki124||2016-09-13|Has expired: EOL upstream sysutils/rsyslog7|sysutils/rsyslog8|2016-09-13|Has expired: Upgrade to rsyslog 8 www/moodle28||2016-09-13|Has expired: EOL upstream devel/php5-msgpack|devel/pecl-msgpack|2016-09-13|Has expired: This is an older version of the software, please use devel/pecl-msgpack textproc/asciinema|textproc/py3-asciinema|2016-09-13|Has expired: use textproc/py3-asciinema instead x11-toolkits/qtada||2016-09-13|Has expired: No development since 2012, usefulness unclear security/letsencrypt.sh|security/dehydrated|2016-09-13|Upstream renamed the project devel/py-dogpile.core|devel/py-dogpile.cache|2016-09-13|EOL upstream. Merged into devel/py-dogpile.cache since 0.6.0 archivers/php5-snappy|archivers/pecl-snappy|2016-09-15|It is PHP 7 compatible now korean/imhangul||2016-09-15|Split into korean/imhangul-gtk2 and korean/imhangul-gtk3 devel/poco-devel|devel/poco|2016-09-18|Has expired: older than stable devel/poco databases/pglogical-output|databases/pglogical|2016-09-22|databases/pglogical-output merged into databases/pglogical mail/gml||2016-09-23|Has expired: Deprecated upstream. Use native gmail tools to import net/nats|net/gnatsd|2016-09-24|Switched to upstream naming graphics/evas_generic_loaders|devel/efl|2016-09-27|Merged into devel/efl graphics/evas_generic_loaders-gst|devel/efl|2016-09-27|Merged into devel/efl graphics/evas_generic_loaders-pdf|devel/efl|2016-09-27|Merged into devel/efl graphics/evas_generic_loaders-ps|devel/efl|2016-09-27|Merged into devel/efl graphics/evas_generic_loaders-raw|devel/efl|2016-09-27|Merged into devel/efl graphics/evas_generic_loaders-svg|devel/efl|2016-09-27|Merged into devel/efl graphics/evas_generic_loaders-xcf|devel/efl|2016-09-27|Merged into devel/efl multimedia/emotion_generic_players-vlc|devel/efl|2016-09-27|Merged into devel/efl x11-toolkits/elementary|devel/efl|2016-09-27|Merged into devel/efl devel/google-sparsehash|devel/sparsehash|2016-09-30|Moved to GitHub under a different name games/fgrun||2016-09-30|Incompatible with latest flightgear math/why3-spark||2016-09-30|Has expired: Only useful for deprecated lang/spark lang/spark||2016-09-30|Has expired: Broken for more than 6 months math/alt-ergo-spark||2016-09-30|Has expired: Only useful for deprecate lang/spark security/nessus-libnasl||2016-09-30|Has expired: Abandoned, consider using OpenVAS security/nessus||2016-09-30|Has expired: Abandoned, consider using OpenVAS security/nessus-libraries||2016-09-30|Has expired: Abandoned, consider using OpenVAS security/nessus-plugins||2016-09-30|Has expired: Abandoned, consider using OpenVAS www/node010||2016-10-01|Has expired: Upstream has placed 0.10.x in maintenance mode, see https://github.com/nodejs/LTS databases/postgresql91-contrib||2016-10-01|Has expired: End-of-life is near databases/postgresql91-plpython||2016-10-01|Has expired: End-of-life is near databases/postgresql91-plperl||2016-10-01|Has expired: End-of-life is near databases/postgresql91-pltcl||2016-10-02|Has expired: End-of-life is near databases/postgresql91-docs||2016-10-02|Has expired: End-of-life is near www/mediawiki125||2016-10-02|Has expired: EOL upstream databases/postgresql91-client||2016-10-03|Has expired: End-of-life is near databases/postgresql91-pgtcl||2016-10-03|Has expired: Depends on expired PostgreSQL 9.1 databases/postgresql91-server||2016-10-03|Has expired: End-of-life is near databases/postgresql-pllua||2016-10-03|Has expired: Depends on expired PostgreSQL 9.1 multimedia/kvazaar-devel|multimedia/kvazaar|2016-10-05|Out of date: use multimedia/kvazaar for now emulators/virtualbox-ose-lite|emulators/virtualbox-ose-nox11|2016-10-05|Renamed audio/squeezeboxserver|audio/logitechmediaserver|2016-10-05|Squeezebox Server renamed to Logitech Media Server audio/squeezeboxserver-dynamicplaylist|audio/logitechmediaserver-dynamicplaylist|2016-10-05|Squeezebox Server renamed to Logitech Media Server audio/squeezeboxserver-lazysearch|audio/logitechmediaserver-lazysearch|2016-10-05|Squeezebox Server renamed to Logitech Media Server audio/squeezeboxserver-sqlplaylist|audio/logitechmediaserver-sqlplaylist|2016-10-05|Squeezebox Server renamed to Logitech Media Server audio/squeezeboxserver-superdatetime|audio/logitechmediaserver-superdatetime|2016-10-05|Squeezebox Server renamed to Logitech Media Server audio/squeezeboxserver-trackstat|audio/logitechmediaserver-trackstat|2016-10-05|Squeezebox Server renamed to Logitech Media Server net/py-uritemplate.py|net/py-uritemplate|2016-10-12|Upstream has consolidated on net/py-uritemplate misc/fortune_strfile||2016-10-14|Has expired: unmaintained and duplicated from base mail/elmo-devel|mail/elmo|2016-10-15|Has expired: Same version as mail/elmo, use it instead math/libR||2016-10-16|Has expired: math/R LIBR option is now on by default security/libbzrtp|security/bzrtp|2016-10-17|Renamed devel/gaphor||2016-10-18|Has expired: runtime failure uncorrected for 1 year after first report editors/winefish||2016-10-18|Has expired: upstream disappeared (project dead?), segfaults on multiple arches misc/jive||2016-10-20|Has expired: Offensive devel/pecl-spread||2016-10-20|Has expired: Works only with EOL php 5.5 devel/pecl-mcve||2016-10-20|Has expired: Works only with EOL php 5.5 security/pecl-tcpwrap||2016-10-20|Has expired: Works only with EOL php 5.5 devel/pecl-shape||2016-10-20|Has expired: Works only with EOL php 5.5 textproc/pecl-enchant||2016-10-20|Has expired: Works only with EOL php 5.5 databases/pecl-mysqlnd_ms||2016-10-20|Has expired: Works only with EOL php 5.5 textproc/pecl-html_parse||2016-10-20|Has expired: Works only with EOL php 5.5 mail/pecl-esmtp||2016-10-20|Has expired: Works only with EOL php 5.5 net/pecl-cvsclient||2016-10-20|Has expired: Works only with EOL php 5.5 databases/pecl-mdbtools||2016-10-20|Has expired: Works only with EOL php 5.5 databases/pecl-mysqlnd_qc||2016-10-20|Has expired: Works only with EOL php 5.5 devel/pecl-operator||2016-10-20|Has expired: Works only with EOL php 5.5 devel/pecl-parsekit||2016-10-20|Has expired: Works only with EOL php 5.5 devel/pecl-hidef||2016-10-20|Has expired: Works only with EOL php 5.5 devel/pecl-automap||2016-10-20|Has expired: Works only with EOL php 5.5 devel/pecl-bbcode||2016-10-20|Has expired: Works only with EOL php 5.5 devel/pecl-bcompiler||2016-10-20|Has expired: Works only with EOL php 5.5 databases/php-adodb-ext||2016-10-21|Has expired: Works only with EOL php 5.5 archivers/php55-bz2||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 archivers/php55-phar||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 archivers/php55-zip||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 archivers/php55-zlib||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 converters/php55-iconv||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 converters/php55-mbstring||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 converters/php55-recode||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 databases/php55-dba||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 databases/php55-interbase||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 databases/php55-mssql||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 databases/php55-mysql||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 databases/php55-mysqli||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 databases/php55-odbc||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 databases/php55-pdo||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 databases/php55-pdo_dblib||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 databases/php55-pdo_firebird||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 databases/php55-pdo_mysql||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 databases/php55-pdo_odbc||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 databases/php55-pdo_pgsql||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 databases/php55-pdo_sqlite||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 databases/php55-pgsql||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 databases/php55-redis||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 databases/php55-sqlite3||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 databases/php55-sybase_ct||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 devel/php55-gettext||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 devel/php55-json||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 devel/php55-pcntl||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 devel/php55-readline||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 devel/php55-shmop||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 devel/php55-sysvmsg||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 devel/php55-sysvsem||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 devel/php55-sysvshm||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 devel/php55-tokenizer||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 ftp/php55-curl||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 ftp/php55-ftp||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 graphics/php55-exif||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 graphics/php55-gd||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 lang/php55||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 lang/php55-extensions||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 mail/php55-imap||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 math/php55-bcmath||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 math/php55-gmp||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 misc/php55-calendar||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 net-mgmt/php55-snmp||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 net/php55-ldap||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 net/php55-soap||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 net/php55-sockets||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 net/php55-xmlrpc||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 security/php55-filter||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 security/php55-hash||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 security/php55-mcrypt||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 security/php55-openssl||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 sysutils/php55-fileinfo||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 sysutils/php55-posix||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 textproc/php55-ctype||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 textproc/php55-dom||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 textproc/php55-enchant||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 textproc/php55-pspell||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 textproc/php55-simplexml||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 textproc/php55-wddx||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 textproc/php55-xml||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 textproc/php55-xmlreader||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 textproc/php55-xmlwriter||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 textproc/php55-xsl||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 www/mod_php55||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 www/php55-opcache||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 www/php55-session||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 www/php55-tidy||2016-10-21|Has expired: EOL upstream since 21 Jul 2016 www/lighttpd-mod_geoip|www/lighttpd|2016-10-21|Integrated into www/lighttpd net/dosdetector||2016-10-23|Has expired: No maintainer activity in over a decade devel/go-btree||2016-10-26|The only consumer of this port (peco) started to bundle a snapshot devel/go-flags||2016-10-26|The only consumer of this port (peco) started to bundle a snapshot devel/go-termbox||2016-10-26|The only consumer of this port (peco) started to bundle a snapshot math/octave-forge-octgpr||2016-11-01|Has expired: Broken for more than 6 months math/octave-forge-spline-gcvspl||2016-11-01|Has expired: Broken for more than 6 months www/pear-Services_SharedBook||2016-11-01|Has expired: Broken for more than 6 months devel/py-snackwich||2016-11-01|Has expired: Depends on broken and expiring devel/py-snack math/octave-forge-ad||2016-11-01|Has expired: Broken for more than 6 months math/octave-forge-xraylib||2016-11-01|Has expired: Broken for more than 6 months x11-toolkits/py-traitsbackendwx||2016-11-01|Has expired: Broken for more than 6 months x11-toolkits/py-traitsgui||2016-11-01|Has expired: Depends on broken and expiring x11-toolkits/py-traitsbackendwx security/lsh||2016-11-01|Has expired: Broken for more than 6 months devel/py-snack||2016-11-01|Has expired: Broken for more than 6 months security/massh||2016-11-01|Has expired: Broken for more than 6 months www/hydra||2016-11-01|Has expired: Broken for more than 6 months math/py-pyfst||2016-11-01|Has expired: Broken for more than 6 months archivers/ruby-zip||2016-11-01|Has expired: Broken will all supported versions of Ruby devel/ruby-langscan||2016-11-01|Has expired: Broken will all supported versions of Ruby graphics/linux-c6-libGLU|graphics/linux-c6-dri|2016-11-04|Unused graphics/linux-c7-libGLU|graphics/linux-c7-dri|2016-11-04|Unused multimedia/libmovtar||2016-11-05|Not used anymore, abandonware devel/p5-Test-Exception-LessClever||2016-11-06|Deprecated by upstream www/py-django-piston||2016-11-06|Has expired: Abandoned upstream. Doesn't work with django>=1.6 net/remmina-plugin-i18n||2016-11-08|Plugin translations removed upstream in GH commit 2dd0526 net/p5-Net-Ping||2016-11-08|Has expired: This or newer version included in all supported versions of perl ftp/curl-hiphop||2016-11-08|Has expired: useful only for removed hiphop-php textproc/rubygem-string-scrub||2016-11-08|Has expired: needed only for EOL versions of Ruby textproc/erlang-p1xml|textproc/erlang-fast_xml|2016-11-08|Project was renamed cad/py-gdsii|cad/python-gdsii|2016-11-10|Renamed devel/py-pydasm|devel/py-capstone|2016-11-11|Has expired: No more upstream and known bugs, use devel/py-capstone instead devel/libdasm|devel/capstone3|2016-11-11|Has expired: No more upstream and known bugs, use devel/capstone3 instead security/erlang-p1tls|security/erlang-fast_tls|2016-11-11|Project was renamed mail/trojita-qt4|mail/trojita|2016-11-13|Qt4 support was dropped, use mail/trojita instead devel/extra-cmake-modules|devel/kf5-extra-cmake-modules|2016-11-14|Renamed to match other KF5 port net/vnc||2016-11-14|Has expired: Distfiles no longer available sysutils/gosa||2016-11-20|Has expired: this version of gosa cannot be fixed (requires PHP < 5.4) security/krb5-112||2016-11-20|Has expired: EOL twelve months after release of krb5-1.14 astro/osmium|astro/libosmium|2016-11-23|Rename according to upstream deskutils/xfce4-notification-daemon|deskutils/xfce4-notifyd|2016-11-23|Has expired: No longer supported by upstream, replaced with deskutils/xfce4-notifyd textproc/clucene-qt5||2016-11-25|Reintegrated into devel/qt5-help devel/go-shellwords||2016-11-26|Integrated into textproc/fzf build procedure www/gecko-sharp20||2016-11-27|Has expired: Broken, no upstream found and no release in 8 years net-mgmt/rancid|net-mgmt/rancid3|2016-11-27|Has expired: Not supported upstream. Please upgrade to net-mgmt/rancid3 x11-servers/mga_hal||2016-11-28|Support for MGA_HAL feature was removed from xf86-video-mga in 2011 audio/lv2core|audio/lv2|2016-11-30|Has expired: Superseded by audio/lv2 java/jakarta-struts||2016-12-01|Has expired: Port is unmaintained and has known security vulnerabilites www/rubygem-url-mount|www/rubygem-url_mount|2016-12-03|Rename to match our rubygem- port naming editors/focuswriter-qt4|editors/focuswriter|2016-12-03|Qt4 support was dropped, use editors/focuswriter instead graphics/gtkdps||2016-12-04|Has expired: No more upstream. Not used in the ports tree security/gsfv||2016-12-04|Has expired: No more upstream misc/grun||2016-12-04|Has expired: No more upstream www/node7|www/node|2016-12-07|www/node is now www/node7 databases/py-sqlalchemy06|databases/py-sqlalchemy10|2016-12-08|Has expired: Upstream has declared this version EoL: please migrate to databases/py-sqlalchemy10 print/py-reportlab2|print/py-reportlab|2016-12-08|Has expired: no longer supported - use reportlab 3.x (py-reportlab) instead devel/py-itools||2016-12-08|Has expired: Depends on broken and expired py-reportlab2 graphics/py-aafigure||2016-12-08|Has expired: Depends on broken and expired py-reportlab2 converters/py-pisa||2016-12-08|Has expired: Deprecated upstream, depends on broken and expired py-reportlab2 graphics/ocrfeeder||2016-12-08|Has expired: Depends on broken and expired py-reportlab2 devel/libcppformat|devel/libfmt|2016-12-08|Project was renamed databases/py35-mysqlclient|databases/py3-mysqlclient|2016-12-10|Moved to match existing naming convention databases/py35-psycopg2|databases/py3-psycopg2|2016-12-10|Moved to match existing naming convention www/linux-f10-flashplugin11|www/linux-flashplayer|2016-12-13|Removed upstream www/linux-c6-flashplugin11|www/linux-flashplayer|2016-12-13|Removed upstream www/linux-c7-flashplugin11|www/linux-flashplayer|2016-12-13|Removed upstream net/py-ceilometerclient|net/py-python-ceilometerclient|2016-12-17|Rename to match pypi name net/py-cinderclient|net/py-python-cinderclient|2016-12-17|Rename to match pypi name net/py-designateclient|net/py-python-designateclient|2016-12-17|Rename to match pypi name net/py-glanceclient|net/py-python-glanceclient|2016-12-17|Rename to match pypi name net/py-heatclient|net/py-python-heatclient|2016-12-17|Rename to match pypi name net/py-keystoneclient|net/py-python-keystoneclient|2016-12-17|Rename to match pypi name net/py-neutronclient|net/py-python-neutronclient|2016-12-17|Rename to match pypi name net/py-novaclient|net/py-python-novaclient|2016-12-17|Rename to match pypi name net/py-openstackclient|net/py-python-openstackclient|2016-12-17|Rename to match pypi name www/py-django-openstack-auth|www/py-django_openstack_auth|2016-12-18|Rename to match pypi name www/linux-c6-flashplugin24|www/linux-flashplayer|2016-12-18|Renamed to match upstream www/linux-c7-flashplugin24|www/linux-flashplayer|2016-12-18|Renamed to match upstream biology/p5-bioperl|biology/p5-BioPerl|2016-12-18|Rename to match upstream naming biology/p5-bioperl-run|biology/p5-BioPerl-Run|2016-12-18|Rename to match upstream naming databases/py-swiftclient|databases/py-python-swiftclient|2016-12-18|Rename to match pypi name x11-toolkits/py-kiwi|x11-toolkits/py-kiwi-gtk|2016-12-24|Rename to match PyPI naming www/py33-requests|www/py3-requests|2016-12-26|No need for 4 versions of py-requests www/py34-requests|www/py3-requests|2016-12-26|No need for 4 versions of py-requests www/py35-requests|www/py3-requests|2016-12-26|No need for 4 versions of py-requests net-mgmt/ccnet|net-mgmt/ccnet-client|2016-12-26|Split into -client and -server parts net-mgmt/seafile|net-mgmt/seafile-client|2016-12-26|Split into -client and -server parts comms/libcodec2|audio/codec2|2016-12-26|Removed: Duplicate port use `audio/codec2` instead databases/py-sqlalchemy07|databases/py-sqlalchemy10|2016-12-27|Has expired: Upstream has declared this version EoL: please migrate to databases/py-sqlalchemy10 security/openvpn-polarssl|security/openvpn-mbedtls|2016-12-27|Slave port renamed to match the TLS library's new name www/p5-ParallelUA|www/p5-ParallelUserAgent|2016-12-31|Rename to match upstream naming lang/perl5.18||2016-12-31|Has expired: Unsupported, please upgrade to a more recent version of Perl audio/linux-f10-sdl_mixer||2016-12-31|Removed audio/linux-f10-pulseaudio-libs||2016-12-31|Removed audio/linux-f10-freealut||2016-12-31|Removed audio/linux-f10-arts||2016-12-31|Removed audio/linux-f10-esound||2016-12-31|Removed audio/linux-f10-libogg||2016-12-31|Removed audio/linux-f10-alsa-plugins-oss||2016-12-31|Removed audio/linux-f10-openal||2016-12-31|Removed audio/linux-f10-openal-soft||2016-12-31|Removed audio/linux-f10-nas-libs||2016-12-31|Removed audio/linux-f10-alsa-lib||2016-12-31|Removed audio/linux-f10-libvorbis||2016-12-31|Removed audio/linux-f10-libaudiofile||2016-12-31|Removed audio/linux-f10-mikmod||2016-12-31|Removed databases/linux-f10-sqlite3||2016-12-31|Removed devel/linux-f10-dbus-glib||2016-12-31|Removed devel/linux-f10-sdl12||2016-12-31|Removed devel/linux-f10-libglade2||2016-12-31|Removed devel/linux-f10-devtools||2016-12-31|Removed devel/linux-f10-allegro||2016-12-31|Removed devel/linux-f10-nspr||2016-12-31|Removed devel/linux-f10-dbus-libs||2016-12-31|Removed devel/linux-f10-libsigc++20||2016-12-31|Removed devel/linux-f10-ncurses-base||2016-12-31|Removed dns/linux-f10-libasyncns||2016-12-31|Removed emulators/linux_base-f10||2016-12-31|Removed emulators/linux-f10||2016-12-31|Removed ftp/linux-f10-curl||2016-12-31|Removed games/dsnake||2016-12-31|Removed graphics/linux-f10-sdl_image||2016-12-31|Removed graphics/linux-f10-sdl_ttf||2016-12-31|Removed graphics/linux-f10-glew||2016-12-31|Removed graphics/linux-f10-ungif||2016-12-31|Removed graphics/linux-f10-png||2016-12-31|Removed graphics/linux-f10-tiff||2016-12-31|Removed graphics/linux-f10-dri||2016-12-31|Removed graphics/linux-f10-jpeg||2016-12-31|Removed graphics/linux-f10-libGLU||2016-12-31|Removed graphics/linux-f10-gdk-pixbuf||2016-12-31|Removed graphics/linux-f10-libmng||2016-12-31|Removed graphics/linux-f10-cairo||2016-12-31|Removed graphics/linux-f10-imlib||2016-12-31|Removed lang/linux-f10-tcl85||2016-12-31|Removed lang/linux-f10-libg2c||2016-12-31|Removed multimedia/linux-f10-libtheora||2016-12-31|Removed multimedia/linux-f10-libv4l||2016-12-31|Removed net/linux-f10-openldap||2016-12-31|Removed net/linux-f10-nss_ldap||2016-12-31|Removed print/linux-f10-cups-libs||2016-12-31|Removed security/linux-f10-gnutls||2016-12-31|Removed security/linux-f10-nss||2016-12-31|Removed security/linux-f10-openssl||2016-12-31|Removed security/linux-f10-libgpg-error||2016-12-31|Removed security/linux-f10-libtasn1||2016-12-31|Removed security/linux-f10-libgcrypt||2016-12-31|Removed security/linux-f10-libssh2||2016-12-31|Removed security/linux-f10-cyrus-sasl2||2016-12-31|Removed sysutils/linux-f10-procps||2016-12-31|Removed textproc/linux-f10-aspell||2016-12-31|Removed textproc/linux-f10-expat||2016-12-31|Removed textproc/linux-f10-scim-gtk||2016-12-31|Removed textproc/linux-f10-scim-libs||2016-12-31|Removed textproc/linux-f10-libxml2||2016-12-31|Removed x11/linux-f10-xorg-libs||2016-12-31|Removed x11-fonts/linux-f10-fontconfig||2016-12-31|Removed x11-themes/linux-f10-qtcurve-gtk2||2016-12-31|Removed x11-themes/linux-f10-hicolor-icon-theme||2016-12-31|Removed x11-toolkits/linux-f10-qt45||2016-12-31|Removed x11-toolkits/linux-f10-gtk2||2016-12-31|Removed x11-toolkits/linux-f10-openmotif||2016-12-31|Removed x11-toolkits/linux-f10-pango||2016-12-31|Removed accessibility/linux-f10-atk||2016-12-31|Removed archivers/linux-f10-ucl||2016-12-31|Removed archivers/linux-f10-upx||2016-12-31|Removed devel/rubygem-devise-async-rails4||2016-12-31|Has expired: Not compatible with devel/rubygem-devise > 3 devel/rubygem-devise-async||2016-12-31|Has expired: Not compatible with devel/rubygem-devise > 3 net/iet||2016-12-31|Has expired: Upstream no longer active sysutils/geomgui||2016-12-31|Has expired: Development stopped years ago sysutils/screen-legacy||2016-12-31|Has expired: Old version released 2008-08-07 no longer upline maintained sysutils/ntfsprogs|sysutils/fusefs-ntfs|2016-12-31|Has expired: Superseded by sysutils/fusefs-ntfs www/rubygem-jekyll2|www/rubygem-jekyll|2016-12-31|Has expired: Use www/rubygem-jekyll instead databases/rubygem-dm-devise||2016-12-31|Has expired: Not compatible with devel/rubygem-devise > 3 devel/rubygem-sprockets211||2016-12-31|Has expired: Use devel/rubygem-sprockets or devel/rubygem-sprockets3 instead devel/p5-Parse-CPAN-Meta||2016-12-31|Has expired: Merged into devel/p5-CPAN-Meta 2.150008 devel/jtag|devel/urjtag|2016-12-31|Has expired: development ceased in 2003, superseded by devel/urjtag x11-toolkits/linux-f10-tk85||2016-12-31|Removed x11-toolkits/linux-f10-blt||2016-12-31|Removed net-mgmt/unifi4|net-mgmt/unifi5|2017-01-01|Has expired: EoL as of 2017-01-01 net/py-simplesoap|net/py-pysimplesoap|2017-01-01|Rename to match upstream naming textproc/docdiff|textproc/rubygem-docdiff|2017-01-02|Rename to match our rubygem- port naming databases/rubygem-dm-rails||2017-01-07|Has expired: Depends on deprecated www/rubygem-actionpack databases/rubygem-activerecord||2017-01-07|Has expired: Upstream support ended devel/rubygem-activesupport||2017-01-07|Has expired: Upstream support ended devel/rubygem-tzinfo03|devel/rubygem-tzinfo|2017-01-07|Has expired: Use devel/rubygem-tzinfo instead devel/rubygem-sprockets22|devel/rubygem-sprockets3|2017-01-07|Has expired: Use devel/rubygem-sprockets or devel/rubygem-sprockets3 instead devel/rubygem-prototype-rails||2017-01-07|Has expired: Depends on deprecated www/rubygem-rails devel/rubygem-rubigen||2017-01-07|Has expired: Depends on deprecated devel/rubygem-activesupport devel/rubygem-coffee-rails||2017-01-07|Has expired: Depends on deprecated www/rubygem-railties japanese/rubygem-jpmobile||2017-01-07|Has expired: Depends on deprecated rubygem-rails mail/rubygem-actionmailer||2017-01-07|Has expired: Upstream support ended mail/rubygem-mail25|mail/rubygem-mail|2017-01-07|Has expired: Use mail/rubygem-mail instead security/dradis||2017-01-07|Has expired: Depends on deprecated www/rubygem-rails textproc/rubygem-sass-rails||2017-01-07|Has expired: Depends on deprecated www/rubygem-railties www/rubygem-rails||2017-01-07|Has expired: Upstream support ended www/rubygem-activeresource||2017-01-07|Has expired: Upstream support ended www/rubygem-responders-rails3||2017-01-07|Has expired: Depends on deprecated www/rubygem-railties www/rubygem-jquery-ui-rails||2017-01-07|Has expired: Depends on deprecated www/rubygem-railties www/rubygem-haml-rails||2017-01-07|Has expired: Depends on deprecated www/rubygem-actionpack www/rubygem-railties||2017-01-07|Has expired: Upstream support ended www/rubygem-actionpack||2017-01-07|Has expired: Upstream support ended databases/rubygem-rubyrep||2017-01-07|Has expired: Depends on deprecated databases/rubygem-activerecord databases/rubygem-activerecord-mysql-adapter||2017-01-07|Has expired: Depends on deprecated databases/rubygem-activerecord databases/rubygem-dm-active_model||2017-01-07|Has expired: Depends on deprecated databases/rubygem-activemodel databases/rubygem-activemodel||2017-01-07|Has expired: Upstream support ended math/libproj4|math/proj.4|2017-01-07|Project was renamed math/proj.4||2017-01-07|math/libproj4 was already duplicated as graphics/proj devel/rubygem-actionview|devel/rubygem-actionview4|2017-01-08|Rename to match our Rails ports naming devel/rubygem-rdoc3|devel/rubygem-rdoc|2017-01-08|Has expired: Older version no longer required devel/rubygem-activejob|devel/rubygem-activejob4|2017-01-08|Rename to match our Rails ports naming www/httpie|www/py-httpie|2017-01-09|Renamed to match upstream (PyPI) name sysutils/istatd|sysutils/istatserver|2017-01-09|Project was renamed devel/py-gflags|devel/py-python-gflags|2017-01-10|Rename to match PyPI naming java/wildfly100|java/wildfly10|2017-01-10|Remove minor version number from port name net/cyphesis||2017-01-15|Has expired: Does not compile on FreeBSD 10+ net/gpxe||2017-01-15|Has expired: does not build on FreeBSD 10.x and later net/openospfd||2017-01-15|Has expired: requires old CARP implementation (interface layer) security/openbsm-devel||2017-01-15|Has expired: is not needed under FreeBSD 10.x or higher security/ssh-copy-id||2017-01-15|Has expired: is already in the base system sysutils/apt||2017-01-15|Has expired: does not build on 10+ archivers/tclmkziplib||2017-01-15|Has expired: Abandonware, please use bundled zlib package [http://tcl.tk/man/tcl8.6/TclCmd/zlib.htm] x11-drivers/drm-kmod||2017-01-15|Has expired: this port is only for 9.3 systems audio/xmms-openspc||2017-01-15|Has expired: does not build on FreeBSD 10.x and later audio/aureal-kmod||2017-01-15|Has expired: does not build (and fetch) emulators/doscmd||2017-01-15|Has expired: does not build (accesses field of opaque structure) sysutils/fusefs-kmod||2017-01-15|Has expired: integrated into base textproc/aiksaurus-gtk||2017-01-15|Has expired: does not link against GTK2 on FreeBSD 10+ net/rwhoisd||2017-01-22|Has expired: No more public distfiles devel/bunny||2017-01-22|Has expired: Superseded by a different project www/pligg||2017-01-22|Has expired: Abandonware x11-drivers/xf86-video-fbdev||2017-01-22|Linux only driver net/librsync1|net/librsync2|2017-01-24|Port renamed to librsync2 databases/ruby-rdbc1||2017-01-28|Has expired: Upstream no longer active databases/ruby-sybct||2017-01-28|Has expired: Upstream no longer active databases/ruby-o_dbm||2017-01-28|Has expired: Upstream no longer active databases/ruby-cdb||2017-01-28|Has expired: Upstream no longer active devel/ruby-rbison||2017-01-28|Has expired: Does not work on modern ruby devel/ruby-property||2017-01-28|Has expired: Upstream no longer exists devel/ruby-dialogs||2017-01-28|Has expired: Upstream no longer active devel/ruby-byaccr||2017-01-28|Has expired: Upstream no longer active devel/ruby-aspectr|devel/rubygem-aspectr|2017-01-28|Has expired: Use rubygem-aspectr instead devel/ruby-locale||2017-01-28|Has expired: No longer useful devel/ruby-wirble||2017-01-28|Has expired: Upstream no longer active devel/ruby-tzfile||2017-01-28|Has expired: Upstream no longer exists devel/ruby-rreadline||2017-01-28|Has expired: Upstream no longer exists devel/ruby-intl|devel/rubygem-gettext|2017-01-28|Has expired: Use devel/rubygem-gettext instead graphics/ruby-imlib2||2017-01-28|Has expired: Upstream no longer active graphics/ruby-image_size||2017-01-28|Has expired: Upstream no longer active graphics/ruby-svg|graphics/rubygem-rsvg2|2017-01-28|Has expired: Use graphics/rubygem-rsvg2 instead irc/ruby-rice||2017-01-28|Has expired: Upstream no longer active irc/ruby-rica||2017-01-28|Has expired: Upstream no longer active irc/ruby-irc||2017-01-28|Has expired: Upstream no longer active japanese/ruby-usersguide||2017-01-28|Has expired: Does not exist upstream japanese/ruby-mecab||2017-01-28|Has expired: Upstream no longer active mail/ruby-rmail||2017-01-28|Has expired: Upstream no longer active mail/ruby-rfilter||2017-01-28|Has expired: Upstream no longer active math/ruby-algebra|math/rubygem-algebra|2017-01-28|Has expired: Use rubygem-algebra instead net/ruby-tserver||2017-01-28|Has expired: Upstream no longer active net/ruby-tcpsocketpipe||2017-01-28|Has expired: Upstream no longer active net/ruby-icmp||2017-01-28|Has expired: Upstream no longer active net/ruby-dict||2017-01-28|Has expired: Upstream no longer active palm/palmos-sdk||2017-01-28|Has expired: Upstream no longer exists security/ruby-hmac|security/rubygem-ruby-hmac|2017-01-28|Has expired: Use www/rubygem-ruby-hmac instead security/ruby-tcpwrap||2017-01-28|Has expired: Upstream no longer active security/ruby-password||2017-01-28|Has expired: Upstream no longer active sysutils/ruby-quota||2017-01-28|Has expired: Upstream no longer active textproc/ruby-rss.alt||2017-01-28|Has expired: Upstream no longer active textproc/ruby-rss||2017-01-28|Has expired: Upstream no longer exists textproc/ruby-htmlrepair||2017-01-28|Has expired: Upstream no longer exists textproc/ruby-xmlscan||2017-01-28|Has expired: Upstream no longer active textproc/ruby-xml-configfile||2017-01-28|Has expired: Upstream no longer exists textproc/ruby-htmlsplit||2017-01-28|Has expired: Upstream no longer exists www/ruby-google||2017-01-28|Has expired: Upstream no longer active archivers/ruby-lha||2017-01-28|Has expired: Upstream no longer active x11/ruby-X11||2017-01-28|Has expired: Upstream no longer active audio/ruby-audiofile||2017-01-28|Has expired: Broken on modern versions of Ruby audio/ruby-mp3tag||2017-01-28|Has expired: Upstream no longer active converters/ruby-dump.rb||2017-01-28|Has expired: Upstream no longer active x11-servers/wayland|graphics/wayland|2017-01-30|Better location for wayland graphics/hsetroot|x11/hsetroot|2017-01-31|Moved to a better category x11-themes/linux-c6-hicolor-icon-theme||2017-01-31|Merged into linux_base port x11-themes/linux-c7-hicolor-icon-theme||2017-01-31|Merged into linux_base port x11-themes/linux-hicolor-icon-theme||2017-01-31|Merged into linux_base port audio/linux-c6-arts||2017-01-31|Old KDE3 component audio/linux-c6-esound||2017-01-31|Old sound daemon audio/linux-c7-esound||2017-01-31|Old sound daemon security/linux-c6-openssl-compat||2017-01-31|Old OpenSSL security/linux-c7-openssl-compat||2017-01-31|Old OpenSSL databases/rubygem-arel3|databases/rubygem-arel|2017-01-31|Has expired: Use devel/rubygem-arel or devel/rubygem-arel6 instead databases/rubygem-arel5|databases/rubygem-arel|2017-01-31|Has expired: Use devel/rubygem-arel or devel/rubygem-arel6 instead www/tinymce3|www/tinymce|2017-01-31|Has expired: Use www/tinymce instead devel/p5-IO-Detect|devel/p5-Scalar-Does|2017-01-31|Has expired: Use devel/p5-Scalar-Does instead devel/pear-PHPUnit3|devel/phpunit|2017-01-31|Has expired: Deprecated by upstream, use devel/phpunit instead devel/rubygem-bio|biology/rubygem-bio|2017-02-05|Move to a better place devel/libcheck|devel/check|2017-02-05|Rename to match upstream naming devel/p5-JIRA-Client||2017-02-05|Has expired: Deprecated by upstream due to deprecated JIRA's SOAP API sysutils/puppet37||2017-02-05|Has expired: Upstream support ended, see http://tinyurl.com/puppet3eol net-im/ttytter||2017-02-05|Has expired: Upstream no longer active, see net-im/oysttyer java/jboss7||2017-02-07|Has expired: Unsupported, replaced by wildfly java/jboss71||2017-02-07|Has expired: Unsupported, replaced by wildfly java/jboss72||2017-02-07|Has expired: Unsupported, replaced by wildfly misc/teslams||2017-02-08|Has expired: Broken for more than 6 months devel/libdict||2017-02-08|Has expired: Broken for more than 6 months math/R-cran-SuppDists||2017-02-08|Has expired: Broken for more than 6 months devel/py-re2||2017-02-08|Has expired: Broken for more than 6 months net-p2p/digitalcoin||2017-02-08|Has expired: Broken for more than 6 months textproc/rubygem-mustache|devel/rubygem-mustache|2017-02-08|Duplicate of devel/rubygem-mustache devel/php70-APCu|devel/pecl-APCu|2017-02-12|Use devel/pecl-APCu for PHP 7.0+ users chinese/mutt|mail/mutt|2017-02-13|Use mail/mutt, which can handle Chinese locales lang/libjit||2017-02-14|Has expired: This version is severely out of date and its use is discouraged; see http://www.gnu.org/software/libjit/ databases/php56-redis|databases/pecl-redis|2017-02-15|Merged with latest codebase that supports all php versions databases/php70-redis|databases/pecl-redis|2017-02-15|Merged with latest codebase that supports all php versions databases/php71-redis|databases/pecl-redis|2017-02-15|Merged with latest codebase that supports all php versions devel/dbus-qt4|devel/qt4-dbus|2017-02-18|Renamed to match other Qt ports devel/dbus-qt5|devel/qt5-dbus|2017-02-18|Renamed to match other Qt ports devel/qmake4|devel/qt4-qmake|2017-02-18|Renamed to match other Qt ports devel/qmake5|devel/qt5-qmake|2017-02-18|Renamed to match other Qt ports textproc/clucene-qt4|textproc/qt4-clucene|2017-02-18|Renamed to match other Qt ports www/webkit-qt4|www/qt4-webkit|2017-02-18|Renamed to match other Qt ports www/webkit-qt5|www/qt5-webkit|2017-02-18|Renamed to match other Qt ports www/rt40|www/rt44|2017-02-18|Has expired: Upstream support EoL, please migrate to rt44 devel/m6811-binutils||2017-02-18|Has expired: multiple vulnerabilities, version is years behind upstream devel/libevent2|devel/libevent|2017-02-20|Rename as only libevent 2.x is supported german/mediathek|german/mediathekview|2017-02-20|Project renamed net/nos-ttb||2017-02-20|Has expired: does not work due to protocol changes sysutils/filebeat|sysutils/beats|2017-02-21|merged beats to one port sysutils/metricbeat|sysutils/beats|2017-02-21|merged beats to one port sysutils/packetbeat|sysutils/beats|2017-02-21|merged beats to one port devel/libc++||2017-02-24|Obsolete, all supported FreeBSD versions have libc++ in the base system devel/libcxxrt||2017-02-24|Obsolete, all supported FreeBSD versions have libcxxrt in the base system devel/linux_kdump||2017-02-26|Broken and obsolete textproc/rubygem-nokogiri14|textproc/rubygem-nokogiri|2017-02-28|Has expired: Use textproc/rubygem-nokogiri instead textproc/rubygem-liquid2|textproc/rubygem-liquid|2017-02-28|Has expired: Use textproc/rubygem-liquid instead www/rubygem-rack14||2017-02-28|Has expired: Use www/rubygem-rack or www/rubygem-rack16 instead www/rubygem-mechanize26|www/rubygem-mechanize|2017-02-28|Has expired: Use www/rubygem-mechanize instead www/rubygem-net-http-persistent25|www/rubygem-net-http-persistent2|2017-02-28|Has expired: Use www/rubygem-net-http-persistent2 instead devel/rubygem-builder32|devel/rubygem-builder|2017-02-28|Has expired: Use devel/rubygem-builder instead www/rubygem-net-http-digest_auth11|www/rubygem-net-http-digest_auth|2017-02-28|Has expired: Use www/rubygem-net-http-digest_auth instead devel/rubygem-bson1|devel/rubygem-bson|2017-02-28|Has expired: Use devel/rubygem-bson instead devel/rubygem-minitest4|devel/rubygem-minitest|2017-02-28|Has expired: Use devel/rubygem-minitest instead java/jdk16-doc||2017-02-28|Has expired: Should have been removed with linux-sun-jdk16 (2014-05-11) java/jdk7-doc||2017-02-28|Has expired: Should have been removed with linux-sun-jdk17 (2016-04-24) textproc/rubygem-sass-rails4|textproc/rubygem-sass-rails5|2017-02-28|Has expired: Use textproc/rubygem-sass-rails5 instead x11-toolkits/p5-Gtk|x11-toolkits/p5-Gtk-Perl|2017-02-28|Rename to match upstream naming japanese/ruby-eb||2017-03-01|Has expired: Upstream no longer active japanese/xyaku||2017-03-01|Has expired: Unmaintained, depends on expired japanese/ruby-eb archivers/libunrar4||2017-03-01|Has expired: Outdated version. Please use archivers/libunrar5 instead sysutils/xacpim||2017-03-01|Has expired: Mastersite disappeared sysutils/linux-nero||2017-03-01|Has expired: Probably cannot actually burn CD/DVD on recent FreeBSD audio/libofa||2017-03-01|Has expired: MusicDNS service has been discontinued emulators/hyperv-is||2017-03-03|Has expired: does not support any actual FreeBSD release devel/py-mez_xml||2017-03-03|Has expired: Was only needed for deprecated www/py-GinGin www/py-GinGin||2017-03-03|Has expired: Upstream disappeared, last release from 2009 www/py-scriptaculous||2017-03-03|Has expired: Development of this branch ceased devel/py-Jinja|devel/py-Jinja2|2017-03-03|Has expired: Development of this branch ceased. Use devel/py-Jinja2 instead mail/py-turbomail||2017-03-03|Has expired: Development of this branch ceased www/py-turbogears|www/py-turbogears2|2017-03-03|Has expired: Development of this branch ceased. Use www/py-turbogears2 devel/py-turbojson||2017-03-03|Has expired: Development of this branch ceased devel/py-TurboJinja||2017-03-03|Has expired: Development of this branch ceased devel/py-TGScheduler||2017-03-03|Has expired: Development of this branch ceased devel/py-turbokid||2017-03-03|Has expired: Development of this branch ceased www/py-tgwebservices||2017-03-03|Has expired: Development of this branch ceased devel/py-turbojson11||2017-03-03|Has expired: Development of this branch ceased devel/py-turbocheetah||2017-03-03|Has expired: Development of this branch ceased devel/py-tgMochiKit||2017-03-03|Has expired: Development of this branch ceased www/py-Lightbox||2017-03-03|Has expired: Development of this branch ceased devel/py-ll-core||2017-03-04|Has expired: Long unmaintained, abandoned upstream net/tcpdump398|net/tcpdump|2017-03-05|Has expired: multiple security vulnerabilities; not updated since 2009 databases/oracle7-client||2017-03-07|Has expired: Oracle 7 EOL by 13 years databases/yasql||2017-03-07|Has expired: Dependent on deprecated oracle7-client databases/jdbc-oracle10g||2017-03-07|Has expired: Oracle 10g EOL almost 4 years databases/jdbc-oracle8i||2017-03-07|Has expired: Oracle8i unsupported and unavailable; fetch site redirects databases/jdbc-oracle9i||2017-03-07|Has expired: Oracle 9i is no more supported x11/rsibreak-kde4|x11/rsibreak|2017-03-11|Renamed to drop the -kde4 suffix textproc/ack|textproc/p5-ack|2017-03-12|Rename to match our perl naming misc/p5-Geo-Coder-Geocoder-US||2017-03-12|Has expired: http://geocoder.us/ disappeared in late 2015 databases/py-sqlalchemy09|databases/py-sqlalchemy10|2017-03-12|Has expired: Upstream has declared this version EoL: please migrate to databases/py-sqlalchemy10 lang/OpenCoarrays|lang/opencoarrays|2017-03-12|Rename to lower case devel/avr-gcc-devel||2017-03-13|Has expired: There's no longer a point to have both, a -devel and a regular port of GCC for the AVR net/py-pysimplesoap|net/py-soap2py|2017-03-13|Rename to match upstream naming games/trigger-data|games/trigger-rally|2017-03-15|Merged into games/trigger-rally devel/py-setuptools27|devel/py27-setuptools|2017-03-16|Renamed to better match other python ports devel/py-setuptools33|devel/py33-setuptools|2017-03-16|Renamed to better match other python ports devel/py-setuptools34|devel/py34-setuptools|2017-03-16|Renamed to better match other python ports devel/py-setuptools35|devel/py35-setuptools|2017-03-16|Renamed to better match other python ports devel/py-setuptools36|devel/py36-setuptools|2017-03-16|Renamed to better match other python ports devel/rubygem-devise-rails4|devel/rubygem-devise|2017-03-16|Has expired: Please use devel/rubygem-devise instead textproc/rubygem-github-markdown||2017-03-16|Has expired: This gem is not maintained and not supported by upstream chinese/irssi|irc/irssi|2017-03-17|Use irc/irssi, which can handle Chinese locales archivers/macutils||2017-03-19|Has expired: Not maintained in 16 years, many missing header inclusions www/npm012|www/npm|2017-03-20|Has expired: Depends on deprecated www/node012. Please use www/npm instead sysutils/ucspi-ssl-tls|sysutils/ucspi-ssl|2017-03-20|Current ucspi-ssl supports TLS net/rubygem-signet|security/rubygem-signet|2017-03-20|Duplicate www/node012|www/node|2017-03-21|Has expired: Upstream has placed 0.12.x in maintenance mode, see https://github.com/nodejs/LTS net/samba-libsmbclient|net/samba43|2017-03-21|Obsolete net/samba-nmblookup|net/samba43|2017-03-21|Obsolete net/samba-smbclient|net/samba43|2017-03-21|Obsolete net/samba36|net/samba43|2017-03-21|Obsolete multimedia/mplayer2|multimedia/mpv|2017-03-25|Has expired: Development ceased in favour of mpv, last release from 2013 devel/buildbot-slave|devel/buildbot-worker|2017-03-27|Renamed to match new upstream package name/terminology print/musixtex||2017-03-27|Has expired: Broken for more than 6 months www/wml||2017-03-27|Has expired: Broken for more than 6 months www/offline-npm||2017-03-27|Has expired: Broken for more than 6 months x11-themes/kde-icons-cezanne||2017-03-27|Has expired: Broken for more than 6 months x11-themes/kde-icons-sky||2017-03-27|Has expired: Broken for more than 6 months deskutils/gnome-shell-extension-backslide||2017-03-27|Has expired: Broken for more than 6 months devel/openvex||2017-03-27|Has expired: Broken for more than 6 months mail/mixmaster||2017-03-27|Has expired: Broken for more than 6 months net-mgmt/nat||2017-03-27|Has expired: Broken for more than 6 months net-p2p/gnunet-gtk||2017-03-27|Has expired: Depends on expiring net-p2p/gnunet net-p2p/gnunet||2017-03-27|Has expired: Broken for more than 6 months print/abc2mtex||2017-03-27|Has expired: Depends on expiring print/musixtex ftp/bareftp||2017-03-27|Has expired: Broken for more than 6 months www/rubygem-jquery-rails4|www/rubygem-jquery-rails|2017-03-27|Remove PKGNAMESUFFIX devel/libytnef|converters/ytnef|2017-03-29|Merged into converters/ytnef databases/py-sqlalchemy08|databases/py-sqlalchemy10|2017-03-29|Has expired: Upstream has declared this version EoL: please migrate to databases/py-sqlalchemy10 devel/py3-meson||2017-03-30|Removed deskutils/kchmviewer-kde4|deskutils/kchmviewer|2017-03-31|Renamed to drop the -kde4 suffix emulators/ppsspp-qt4|emulators/ppsspp-qt5|2017-03-31|Qt4 support was removed upstream devel/arduino16|devel/arduino18|2017-03-31|Renamed to match major version following upgrade devel/llvm37||2017-04-01|Obsolete and unmaintained upstream lang/clang37||2017-04-01|Obsolete and unmaintained upstream devel/lldb37||2017-04-01|Obsolete and unmaintained upstream audio/gnome-media||2017-04-01|Obsolete and not depend on anymore audio/gnome-audio||2017-04-01|Obsolete and not depend on anymore accessibility/gnome-mag||2017-04-01|Obsolete and not depend on anymore accessibility/gnome-speech||2017-04-01|Obsolete and not depend on anymore accessibility/gok||2017-04-01|Obsolete and not depend on anymore accessibility/dasher||2017-04-01|Obsolete and not depend on anymore accessibility/java-access-bridge||2017-04-01|Obsolete and not depend on anymore accessibility/at-spi||2017-04-01|Obsolete and not depend on anymore accessibility/at-spi-reference||2017-04-01|Obsolete and not depend on anymore deskutils/gnome-blog||2017-04-01|Obsolete and not depend on anymore deskutils/gnome-epub-thumbnailer||2017-04-01|Obsolete and not depend on anymore databases/libgdamm||2017-04-01|Obsolete and not depend on anymore databases/libgda4-bdb||2017-04-02|Obsolete and not depend on anymore databases/libgda4-reference||2017-04-02|Obsolete and not depend on anymore databases/libgda4-postgresql||2017-04-02|Obsolete and not depend on anymore databases/libgda4||2017-04-02|Obsolete and not depend on anymore databases/libgda4-jdbc||2017-04-02|Obsolete and not depend on anymore databases/libgda4-mysql||2017-04-02|Obsolete and not depend on anymore databases/libgda4-mdb||2017-04-02|Obsolete and not depend on anymore databases/libgda4-ldap||2017-04-02|Obsolete and not depend on anymore devel/libsigcx||2017-04-02|Obsolete and not depend on anymore x11-toolkits/gal2||2017-04-02|Obsolete and not depend on anymore x11-toolkits/gal2-reference||2017-04-02|Obsolete and not depend on anymore x11-toolkits/vte290|x11-toolkits/vte3|2017-04-02|Obsolete and not depend on anymore x11-toolkits/libgtksourceviewmm||2017-04-03|Obsolete and not depend on anymore graphics/goocanvasmm||2017-04-03|Obsolete and not depend on anymore x11-themes/kde4-icons-oxygen|x11-themes/kf5-oxygen-icons5|2017-04-03|Replaced by x11-themes/kf5-oxygen-icons5 devel/php5-geshi|devel/php-geshi|2017-04-04|Update PKGNAMEPREFIX: it builds fine with PHP 7.x databases/p5-Search-Xapian|databases/p5-Search-Xapian12|2017-04-04|Rename to match Xapian PKGNAMESUFFIX archivers/pecl-snappy|archivers/php-snappy|2017-04-04|Update PKGNAMEPREFIX: it builds fine with PHP 7.x textproc/kibana50|textproc/kibana5|2017-04-05|Rename port to match the rest of the 5.X line of the elastic stack textproc/kibana50-x-pack|textproc/kibana5-x-pack|2017-04-05|Rename port to match the rest of the 5.X line of the elastic stack www/typo3|www/typo3-8|2017-04-08|Rename to coexist with TYPO3 7.x (was typo3-lts) since both versions are LTS now www/typo3-lts|www/typo3-7|2017-04-08|Rename to coexist with TYPO3 8.x (was typo3) since both versions are LTS now sysutils/puppet38|sysutils/puppet4|2017-04-10|Has expired: Upstream support ended, see http://tinyurl.com/puppet3eol editors/libreoffice4|editors/libreoffice|2017-04-10|Has expired: Deprecated by upstream databases/rubygem-redis-actionpack4|databases/rubygem-redis-actionpack|2017-04-10|Has expired: Use databases/rubygem-redis-actionpack instead devel/rubygem-nio4r1|devel/rubygem-nio4r|2017-04-10|Has expired: Use devel/rubygem-nio4r instead devel/liborcus07|devel/liborcus|2017-04-10|Has expired: Deprecated by upstream, use devel/liborcus devel/mdds0|devel/mdds|2017-04-10|Has expired: Deprecated by upstream, use devel/mdds security/openvpn23-polarssl||2017-04-10|Has expired: Replaced by new upstream release 2.4.x security/openvpn23|security/openvpn|2017-04-10|Has expired: Replaced by new upstream release 2.4.x textproc/p5-XML-XSH||2017-04-10|Has expired: Deprecated by upstream www/rubygem-jquery-atwho-rails-rails4|www/rubygem-jquery-atwho-rails|2017-04-10|Has expired: Use www/rubygem-jquery-atwho-rails instead www/p5-Catalyst-Plugin-Singleton||2017-04-10|Has expired: Deprecated by upstream x11/lumina-i18n||2017-04-10|Has expired: Obsolete, i18n files included in x11/lumina sysutils/jail2||2017-04-10|Has expired: Starting with 10.0 functionality has been merged into base sysutils/iocage-devel||2017-04-10|Has expired: Outdated version. Please use sysutils/py-iocage instead databases/puppetdb||2017-04-10|Has expired: Depends on expired sysutils/puppet38, use puppetdb[34] instead databases/puppetdb-terminus||2017-04-10|Has expired: Depends on expired sysutils/puppet38, use puppetdb-terminus[34] databases/pglesslog||2017-04-10|Has expired: Does not build with recent PostgreSQL versions textproc/go-text||2017-04-10|Has expired: Go libraries should not be packaged devel/go-pretty||2017-04-10|Has expired: Go libraries should not be packaged databases/godis||2017-04-10|Has expired: Go libraries should not be packaged www/moodle29|www/moodle32|2017-04-10|Has expired: Upstream support EoL, please migrate to moodle32 audio/schism|audio/schismtracker|2017-04-12|Renamed for better naming graphics/opencv2|graphics/opencv|2017-04-14|Revert previous rename graphics/opencv2-core|graphics/opencv-core|2017-04-14|Revert previous rename graphics/opencv2-java|graphics/opencv-java|2017-04-14|Revert previous rename graphics/py-opencv2|graphics/py-opencv|2017-04-14|Revert previous rename databases/pgpool-II-22|databases/pgpool|2017-04-14|Has expired: Deprecated by upstream; use database/pgpool instead databases/pgpool-II-23|databases/pgpool|2017-04-14|Has expired: Deprecated by upstream; use database/pgpool instead net/py-matrix-synapse|net-im/py-matrix-synapse|2017-04-17|Move to net-im which is a more appropriate category graphics/shiva-collections||2017-04-17|Has expired: Project is dead and has no end user graphics/opengtl||2017-04-17|Has expired: Project is dead, has no end user, and relies on EOLed LLVM graphics/qtgtl||2017-04-17|Has expired: Project is dead and has had no consumer for over a year www/py-django16|www/py-django18|2017-04-19|Has expired: End of extended support: April 1, 2015 www/py-django16-tastypie|www/py-django-tastypie|2017-04-19|Removed, uses expired Django version www/py-django-pipeline13|www/py-django-pipeline|2017-04-19|Has expired: Depends on expired www/py-django16, and expired upstream www/py-djblets||2017-04-19|Has expired: Does not build with py-django18 see pr: 216758 security/py-crits||2017-04-19|Has expired: Does not build with py-django18 see pr: 216758 www/py-cactus||2017-04-19|Removed, depends on expired Django version devel/py-django16-tastypie-mongoengine|devel/py-django-tastypie-mongoengine|2017-04-19|Removed, uses expired Django version devel/freeocl|lang/pocl|2017-04-19|Has expired: Unfetchable for more than six months (google code has gone away); use lang/pocl instead net/librsync|net/librsync2|2017-04-28|Unmaintained, CVE-2014-8242, use net/librsync2 instead devel/stormlib-ghost++||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) devel/py-coil||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) devel/py-cmdln||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) devel/privman||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) devel/c-unit||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) devel/py-px||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) devel/nglogc||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) devel/bncsutil-ghost++||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) devel/liblouisxml||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) devel/nxt-python||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) devel/spdict||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) devel/guiloader-c++||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) devel/streamhtmlparser||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) devel/winpdb||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) net/opendpi||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) net/py-pybeanstalk||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) net-im/qwit||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) net-im/linux-instantbird||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) net-im/jabber-pyicq||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) net-im/qwit-devel||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) net-im/naim||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) net-im/pwytter||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) sysutils/sievelog||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) sysutils/ldapenter||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) sysutils/py-danzfs||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) sysutils/plasma-applet-apcups||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) sysutils/scanmem||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) sysutils/pdsh||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) deskutils/superswitcher||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) deskutils/plasma-applet-playwolf||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) deskutils/nagaina||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) deskutils/vboxgtk||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) deskutils/libgcal||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) math/carve||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) math/foma||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) math/libjbigi||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) multimedia/gcap||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) multimedia/freetuxtv||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) multimedia/bangarang||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) multimedia/opencinematools||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) multimedia/vstream-client||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) biology/treeviewx||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) www/pylot||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) www/xpi-pencil||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) www/mod_myvhost||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) www/feedonfeeds||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) www/mod_jail||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) www/jspacker||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) www/cocoon||2017-04-30|Has expired: Overly complex port with no maintainer since 2008, requires openjdk 1.6 www/mod_authz_unixgroup24||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) www/trac-down||2017-04-30|Has expired: Upstream is gone www/tengine||2017-04-30|Removed www/arora||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) www/py-postmarkup||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) www/py-dotcloud.cli||2017-04-30|Has expired: deprecated in upstream www/closure-linter||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) www/httpsqs||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) www/sventon||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) www/mod_authnz_external22||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) www/mod_authn_otp||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) www/php-plurk-api||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) www/py-django-app-plugins||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) www/mod_authz_unixgroup22||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) www/squidstats||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) www/mod_log_firstbyte||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) www/gaeo||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) www/xpi-pentadactyl||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) net-mgmt/py-flowtools||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) chinese/ydict||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) chinese/py-cconv||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) chinese/fqterm||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) chinese/libgooglepinyin||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) chinese/p5-cconv||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) chinese/fcitx-googlepinyin||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) chinese/php-cconv||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) databases/jdbm2||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) databases/akonadi-googledata||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) lang/ofc||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) comms/esmska||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) x11/keynav||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) x11/hotwire-shell||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) security/fuzzdb||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) security/truecrack||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) security/skipfish||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) security/py-yara-editor||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) security/nmapsi4||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) security/cmd5checkpw||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) net-p2p/unworkable||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) net-p2p/rtgui||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) audio/xpi-musicpm||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) audio/pidgin-musictracker||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) audio/logitechmediaserver-superdatetime||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) audio/last-cmus||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) audio/mehdiaplayer||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) japanese/nhocr||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) misc/xsw||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) dns/py-adns||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) dns/py-bonjour||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) games/robocalypto||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) games/libfov||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) games/dcross||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) games/lostfeathers||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) games/hexglass||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) textproc/chm2pdf||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) textproc/dtdinst||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) textproc/py-xmltv||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) textproc/libroxml||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) mail/gnome-gmail-notifier||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) irc/py-gozerbot||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) irc/tircd||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) graphics/qiviewer||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) graphics/py-gchartwrapper||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) graphics/svgfig||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) graphics/iulib||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) graphics/seam-carving-gui||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) graphics/py-pyggel||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) graphics/rubygem-gemojione2||2017-04-30|Has expired: Use graphics/rubygem-gemojione instead deskutils/epoch||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) graphics/ocropus||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) net/clamz||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) misc/terraform||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) net-mgmt/flow-tools-ng||2017-04-30|Has expired: Unfetchable for more than six months (google code has gone away) devel/llvm36||2017-05-02|Obsolete and unmaintained upstream lang/clang36||2017-05-02|Obsolete and unmaintained upstream lang/ruby21||2017-05-02|Has expired: Upstream support ended devel/guiloader||2017-05-05|Unfetchable for more than six months (google code has gone away) audio/ufmcontrol-i18n||2017-05-07|Unfetchable for more than six months (google code has gone away) devel/ccons||2017-05-07|Has expired: Unfetchable for more than six months (google code has gone away) chinese/fortune||2017-05-07|Has expired: Unfetchable for more than six months (google code has gone away) benchmarks/gobench||2017-05-07|Has expired: Builds each time it runs sysutils/grok||2017-05-07|Has expired: Unfetchable for more than six months (google code has gone away) audio/xaylet|audio/aylet|2017-05-07|Moved to a single port with GUI option graphics/dri|graphics/mesa-dri|2017-05-12|Renamed for clarity and consistency with graphics/mesa-libs graphics/gbm|graphics/mesa-libs|2017-05-12|Mesa libraries were merged into one port graphics/libglapi|graphics/mesa-libs|2017-05-12|Mesa libraries were merged into one port graphics/libglesv2|graphics/mesa-libs|2017-05-12|Mesa libraries were merged into one port graphics/libEGL|graphics/mesa-libs|2017-05-12|Mesa libraries were merged into one port graphics/libGL|graphics/mesa-libs|2017-05-12|Mesa libraries were merged into one port multimedia/rubygem-av-rails5||2017-05-15|Has expired: Use multimedia/rubygem-av instead devel/rubygem-cocaine-rails5||2017-05-15|Has expired: Use devel/rubygem-cocaine instead devel/rubygem-climate_control-rails5||2017-05-15|Has expired: Use devel/rubygem-climate_control instead net/py-twitter|net/py-python-twitter|2017-05-15|Renamed to reflect official name at PyPI/Github sysutils/bsdadminscripts|ports-mgmt/bsdadminscripts|2017-05-17|Move into more appropiate category games/ioquake3-devel|games/ioquake3|2017-05-18|GitHub master is the new release model games/ioquake3-devel-server|games/ioquake3-server|2017-05-18|GitHub master is the new release model devel/rubygem-generator_spec|devel/rubygem-generator_spec-rails5|2017-05-19|Use devel/rubygem-generator_spec-rails4 or devel/rubygem-generator_spec-rails5 deskutils/openproj|deskutils/projectlibre|2017-05-19|Has expired: Development ceased, superseded by deskutils/projectlibre net/go-madonctl|net/madonctl|2017-05-21|Remove go- prefix net-mgmt/zabbix24-agent||2017-05-29|Has expired: Upstream has declared this version EoL in 2016 (Q1) net-mgmt/zabbix24-frontend||2017-05-29|Has expired: Upstream has declared this version EoL in 2016 (Q1) net-mgmt/zabbix24-proxy||2017-05-29|Has expired: Upstream has declared this version EoL in 2016 (Q1) net-mgmt/zabbix24-server||2017-05-29|Has expired: Upstream has declared this version EoL in 2016 (Q1) net/py-cloudfiles|net/py-python-cloudfiles|2017-05-30|Rename to match PyPI naming irc/konversation-kde4|irc/konversation|2017-05-30|Renamed to irc/konversation net/py-python-swiftclient|databases/py-python-swiftclient|2017-05-31|Duplicate port lang/perl5.20|lang/perl5.24|2017-06-01|Support ends three years after .0 release, please upgrade to a more recent version of Perl misc/unicode-ucd|textproc/UCD|2017-06-02|unicode-ucd was a duplicate of textproc/UCD, remove the younger port print/gutenprint-base|print/gutenprint|2017-06-04|Folded into gutenprint port print/gutenprint-cups|print/gutenprint|2017-06-04|Folded into gutenprint port print/gutenprint-foomatic||2017-06-04|Component removed upstream print/gutenprint-ijs||2017-06-04|Component removed upstream devel/py-PyDispatcher|devel/py-pydispatcher|2017-06-05|Change name to lower case mail/linux-thunderbird||2017-06-07|Has expired: Use the native thunderbird mail/thunderbird instead devel/p5-Penguin||2017-06-07|Has expired: Depends on expired security/pgp security/p5-Crypt-PGPSimple||2017-06-07|Has expired: Depends on expired security/pgp mail/pgpsendmail||2017-06-07|Has expired: Depends on expired security/pgp security/pgp||2017-06-07|Has expired: This software was last updated in 1996, use security/gnupg1 as a drop-in replacement with legacy PGP support dns/pear-Net_DNS||2017-06-07|Has expired: This Port use PHP4.2 - This PHP-Version is not longer supporded net/samba42|net/samba44|2017-06-07|Has expired: not supported upstream https://wiki.samba.org/index.php/Samba_Release_Planning net/samba43|net/samba44|2017-06-07|Has expired: not supported upstream https://wiki.samba.org/index.php/Samba_Release_Planning www/py-utidy|www/py-utidylib|2017-06-08|Rename to comply with PyPI scheme chinese/calligra-l10n-zh_CN||2017-06-12|Merged with editors/calligra chinese/calligra-l10n-zh_TW||2017-06-12|Merged with editors/calligra french/calligra-l10n||2017-06-12|Merged with editors/calligra german/calligra-l10n||2017-06-12|Merged with editors/calligra hungarian/calligra-l10n||2017-06-12|Merged with editors/calligra japanese/calligra-l10n||2017-06-12|Merged with editors/calligra polish/calligra-l10n||2017-06-12|Merged with editors/calligra portuguese/calligra-l10n-pt_BR||2017-06-12|Merged with editors/calligra portuguese/calligra-l10n||2017-06-12|Merged with editors/calligra russian/calligra-l10n||2017-06-12|Merged with editors/calligra ukrainian/calligra-l10n||2017-06-12|Merged with editors/calligra editors/calligra-l10n-bs||2017-06-12|Merged with editors/calligra editors/calligra-l10n-ca||2017-06-12|Merged with editors/calligra editors/calligra-l10n-ca_valencia||2017-06-12|Merged with editors/calligra editors/calligra-l10n-cs||2017-06-12|Merged with editors/calligra editors/calligra-l10n-da||2017-06-12|Merged with editors/calligra editors/calligra-l10n-el||2017-06-12|Merged with editors/calligra editors/calligra-l10n-en_GB||2017-06-12|Merged with editors/calligra editors/calligra-l10n-es||2017-06-12|Merged with editors/calligra editors/calligra-l10n-et||2017-06-12|Merged with editors/calligra editors/calligra-l10n-fi||2017-06-12|Merged with editors/calligra editors/calligra-l10n-gl||2017-06-12|Merged with editors/calligra editors/calligra-l10n-it||2017-06-12|Merged with editors/calligra editors/calligra-l10n-kk||2017-06-12|Merged with editors/calligra editors/calligra-l10n-nb||2017-06-12|Merged with editors/calligra editors/calligra-l10n-nl||2017-06-12|Merged with editors/calligra editors/calligra-l10n-sk||2017-06-12|Merged with editors/calligra editors/calligra-l10n-sv||2017-06-12|Merged with editors/calligra editors/calligra-l10n-tr||2017-06-12|Merged with editors/calligra editors/calligra-l10n||2017-06-12|Merged with editors/calligra www/py-flask-restplus08||2017-06-21|Obsolete and not depended on anymore databases/pgpool-II|databases/pgpool|2017-06-25|Has expired: Deprecated by upstream; use database/pgpool instead databases/pgpool-II-30|databases/pgpool|2017-06-25|Has expired: Deprecated by upstream; use database/pgpool instead games/libgames-support||2017-06-25|Has expired: Superseded by libgnome-games-support, no longer used by anything net/sixxs-aiccu||2017-06-25|Has expired: SixXS shutdown on 2017-06-06, https://www.sixxs.net/sunset/ databases/pgpoolAdmin||2017-06-25|Removed, depended on expired databases/pgpool-II and only supported PostgreSQL 9.2 which is will EOL in September 2017 sysutils/syslog-ng-devel|sysutils/syslog-ng310|2017-06-28|Balabit's syslog-ng team has switched to a rolling release model now print/axpoint|print/p5-XML-Handler-AxPoint|2017-06-30|Rename to match CPAN naming misc/p5-Geo-Coder-Many||2017-07-01|Has expired: deprecated and no longer maintained by upstream graphics/gimp-elsamuko-script||2017-07-01|Has expired: Broken for more than 2 years devel/anjuta-extras||2017-07-01|Has expired: Last release in 2013 and doesn't build with recent GTK+ www/apache22-worker-mpm||2017-07-01|Has expired: Upstream propose EoL of apache 2.2.x during the next 12 months www/apache22-itk-mpm||2017-07-01|Has expired: Upstream propose EoL of apache 2.2.x during the next 12 months www/apache22-peruser-mpm||2017-07-01|Has expired: Upstream propose EoL of apache 2.2.x during the next 12 months www/apache22-event-mpm||2017-07-01|Has expired: Upstream propose EoL of apache 2.2.x during the next 12 months net/freeradius2|net/freeradius3|2017-07-01|Has expired: EoL, use net/freeradius3 instead net/abills||2017-07-01|Removed, unmaintained and depends on expired net/freeradius2 net-mgmt/ezradius||2017-07-01|Removed, unmaintained and depends on expired net/freeradius2 x11-toolkits/qt5-declarative||2017-07-01|Has expired: Has not been released since Qt 5.5 -- installation can lead to runtime conflicts with qt5-quick deskutils/california|deskutils/gnome-calendar|2017-07-02|Has expired: Orphaned upstream, replaced by gnome-calendar devel/etcd3|devel/etcd31|2017-07-07|Version 3.2 introduces breaking changes sysutils/py-iocage|sysutils/py3-iocage|2017-07-10|Has expired: obsoleted by sysutils/py3-iocage port using Python 3 instead of Python 2 www/mediawiki126|www/mediawiki127|2017-07-10|Has expired: Upstream support EoL devel/libbrotli|archivers/brotli|2017-07-12|meta project no longer required to build libs dns/opendnssec13|dns/opendnssec|2017-07-13|Has expired: Approaching EOL, upgrade to opendnssec 1.4 or 2 multimedia/banshee||2017-07-13|Has expired: Project is not being actively maintained upstream anymore www/libhtp-suricata||2017-07-16|No longer required. security/suricata now uses official (not forked) libhtp databases/py-odbc|databases/py-pyodbc|2017-07-18|Rename to comply with PyPI scheme security/sshguard-ipfw|security/sshguard|2017-07-20|Merged with security/sshguard security/sshguard-pf|security/sshguard|2017-07-20|Merged with security/sshguard security/sshguard-null|security/sshguard|2017-07-20|Merged with security/sshguard audio/gstreamer1-plugins-mad|audio/gstreamer1-plugins-mpg123|2017-07-21|The GStreamer 1 mad plugin was removed, the mpg123 plugin supplies the same functionality x11-toolkits/gstreamer1-plugins-gtksink|x11-toolkits/gstreamer1-plugins-gtk|2017-07-21|The GStreamer 1 gtksink plugin was renamed devel/ffcall|devel/libffcall|2017-07-28|Project was renamed databases/grass|databases/grass6|2017-07-30|Project was renamed to allow for grass7 net/rubygem-oauth212|net/rubygem-oauth2|2017-07-31|Has expired: Only created for www/gitlab; please use net/rubygem-oauth2 instead textproc/rubygem-liquid3|textproc/rubygem-liquid|2017-07-31|Has expired: Use textproc/rubygem-liquid instead mail/dovecot2-antispam-plugin|mail/dovecot-pigeonhole|2017-07-31|Has expired: Use pigeonhole instead. See https://wiki2.dovecot.org/HowTo/AntispamWithSieve mail/dovecot-antispam|mail/dovecot-pigeonhole|2017-07-31|Has expired: Dovecot-1.x is deprecated. Use dovecot2 and dovecot2-antispam-plugin instead mail/dovecot-sieve|mail/dovecot-pigeonhole|2017-07-31|Has expired: Dovecot-1.x is deprecated. Use dovecot2 and dovecot-pigeonhole instead mail/dovecot-managesieve|mail/dovecot-pigeonhole|2017-07-31|Has expired: Dovecot-1.x is deprecated. Use dovecot2 and dovecot-pigeonhole instead www/rubygem-jquery-ui-rails5-rails4|www/rubygem-jquery-ui-rails-rails4|2017-07-31|Has expired: Only created for www/gitlab; please use www/rubygem-jquery-ui-rails-rails4 instead security/rubygem-omniauth13|security/rubygem-omniauth|2017-07-31|Has expired: Only created for www/gitlab; please use security/rubygem-omniauth instead devel/rubygem-health_check22|devel/rubygem-health_check|2017-07-31|Has expired: Only created for www/gitlab; please use devel/rubygem-health_check instead devel/rubygem-semantic_puppet0|devel/rubygem-semantic_puppet|2017-07-31|Has expired: Use devel/rubygem-semantic_puppet instead devel/rubygem-newrelic_rpm3|devel/rubygem-newrelic_rpm|2017-07-31|Has expired: Only created for www/gitlab; please use devel/rubygem-newrelic_rpm instead lang/p5-Parse-Perl||2017-07-31|Has expired: does not build with Perl >= 5.22 sysutils/rubygem-puppet_forge1|sysutils/rubygem-puppet_forge|2017-07-31|Has expired: Use sysutils/rubygem-puppet_forge instead sysutils/rubygem-SyslogLogger||2017-07-31|Has expired: Project is EOL'd because it was merged into Ruby 2.0 multimedia/avbin||2017-07-31|Has expired: Unfetchable for more than six months (google code has gone away) games/gondola||2017-07-31|Depends on expired multimedia/avbin sysutils/flyback||2017-07-31|Unfetchable for more than six months (google code has gone away) multimedia/py-ffmpeg||2017-07-31|Has expired: Deprecated upstream in favour of ffpyplayer devel/cloudabi-binutils-aarch64|devel/cloudabi-toolchain|2017-07-31|ELF-toolchain based tools should be used instead devel/cloudabi-binutils-x86_64|devel/cloudabi-toolchain|2017-07-31|ELF-toolchain based tools should be used instead security/openvas-libraries|security/openvas8-libraries|2017-08-03|Renamed to include openvas 9 ports security/openvas-cli|security/openvas8-cli|2017-08-03|Renamed to include openvas 9 ports. It reflects a better name security/openvas-manager|security/openvas8-manager|2017-08-03|Renamed to include openvas 9 ports. It reflects a better name security/openvas-scanner|security/openvas8-scanner|2017-08-03|Renamed to include openvas 9 ports. It reflects a better name security/greenbone-security-assistant|security/greenbone-security-assistant8|2017-08-03|Renamed to include openvas 9 ports. It reflects a better name sysutils/consolekit|sysutils/consolekit2|2017-08-05|Continuation of the consolekit project mail/dovecot2|mail/dovecot|2017-08-07|Renamed to mail/dovecot mail/dovecot2-pigeonhole|mail/dovecot-pigeonhole|2017-08-07|Renamed to mail/dovecot-pigeonhole devel/hs-MonadCatchIO-mtl||2017-08-08|Deprecated in favor of the exceptions package devel/hs-MonadCatchIO-transformers||2017-08-08|Deprecated in favor of the exceptions package devel/hs-directory||2017-08-08|Part of the bundled packages in ghc devel/hs-syb-with-class-instances-text||2017-08-08|Upstream is unmaintained textproc/hs-citeproc-hs||2017-08-08|Upstream is unmaintained, use pandoc-citeproc instead sysutils/chvt||2017-08-10|Functionality available in base, using vidcontrol(1) graphics/rawtherapee-devel|graphics/rawtherapee|2017-08-12|Removed test release in favor of the newer stable release audio/py-jack|audio/py-py-jack|2017-08-20|Renamed to py-py-jack to match PyPI package name lang/whitespace||2017-08-21|Has expired: Mastersite disappeared databases/sqlitebrowser-qt5|databases/sqlitebrowser|2017-08-22|sqlitebrowser now uses QT5 misc/lr|misc/lazyread|2017-08-22|Renamed to reflect upstream name mail/roundcube-air||2017-08-23|Removed, does not work with main port games/plee-the-bear||2017-08-23|Has expired: Broken for more than 6 months x11-themes/kde-icons-umicons||2017-08-23|Has expired: Broken for more than 6 months lang/bigloo||2017-08-23|Has expired: Broken for more than 6 months audio/linux-neroaaccodec||2017-08-23|Has expired: Broken for more than 6 months x11-themes/kde-icons-dark-glass||2017-08-23|Has expired: Broken for more than 6 months misc/fortune-mod-ferengi_rules_of_acquisition||2017-08-23|Has expired: Broken for more than 6 months misc/fortune-mod-culmea-culmilor||2017-08-23|Has expired: Broken for more than 6 months misc/xyzcmd||2017-08-23|Has expired: Broken for more than 6 months russian/fortuneru||2017-08-23|Has expired: Broken for more than 6 months security/bdc||2017-08-23|Has expired: Broken for more than 6 months x11-themes/kde-icons-icosx||2017-08-23|Has expired: Broken for more than 6 months devel/insight||2017-08-23|Has expired: Broken for more than 6 months devel/gdb66||2017-08-23|Has expired: Broken for more than 6 months biology/biojava||2017-08-23|Has expired: Broken for more than 6 months java/intellij-pycharm|devel/pycharm-ce|2017-08-23|Renamed to reflect upstream name. Use a more appropriate origin (devel for development tools, IDE) www/pyweblib|www/py-pyweblib|2017-08-25|Rename to comply with PyPI scheme databases/libzbxpgsql|databases/zabbix3-libzbxpgsql|2017-08-26|Rename to allow multiple versions of libzbxpgsql to coexist x11-toolkits/kirigami||2017-08-28|Not needed by anything x11-toolkits/kirigami2|x11-toolkits/kf5-kirigami2|2017-08-28|Became an official framework www/speedtest-mini||2017-09-03|Has expired: Discontinued upstream (on June 30, 2017) devel/rubygem-sequel3|devel/rubygem-sequel|2017-09-03|Has expired: Use devel/rubygem-sequel instead audio/tomahawk||2017-09-03|Has expired: Project is dead upstream mail/rubygem-larch||2017-09-03|Has expired: Unmaintained by upstream, no changes since 2013 devel/rubygem-sidekiq4|devel/rubygem-sidekiq|2017-09-03|Has expired: Use devel/rubygem-sidekiq instead devel/rubygem-webpacker1-rails5|devel/rubygem-webpacker-rails5|2017-09-03|Has expired: Use devel/rubygem-webpacker-rails5 instead devel/rubygem-sidekiq-cron04|devel/rubygem-sidekiq-cron|2017-09-03|Has expired: Use devel/rubygem-sidekiq-cron instead www/py-django19||2017-09-03|Has expired: Unsupported upstream mail/movemail||2017-09-03|Has expired: Out of date ports-mgmt/fbsdmon||2017-09-03|Has expired: no longer maintained, web site it sends data to has been taken over by cybersquatters security/py-pyme|security/py-gpgme|2017-09-03|Has expired: Merged with GPGme project. Please use security/py-gpgme instead lang/python33||2017-09-03|Has expired: No longer receives bug fixes, only security updates. Please update to Python 3.6 databases/py33-gdbm||2017-09-03|Removed, please update to Python 3.6 databases/py33-sqlite3||2017-09-03|Removed, please update to Python 3.6 devel/py33-setuptools||2017-09-03|Removed, please update to Python 3.6 x11-toolkits/py33-tkinter||2017-09-03|Removed, please update to Python 3.6 devel/py3-enum34||2017-09-03|Removed, Python 3.3 only security/clambc||2017-09-14|Has expired: Practically unmaintained, featuring issues elsewhere solved 6 years ago devel/cmake-modules||2017-09-14|Deleted, merged into devel/cmake devel/cargo|lang/rust|2017-09-15|Merged with lang/rust security/gnupg22|security/gnupg|2017-09-19|Removed, security/gnupg is now gnupg22 mail/milter-greylist-devel|mail/milter-greylist|2017-09-22|Has expired: mail/milter-greylist provides same version and options devel/libexecinfo||2017-09-22|Is present in the base system of all supported releases games/ember||2017-09-23|Removed, it is BROKEN and no longer developed since 2014 ports-mgmt/packagekit-qt4||2017-09-28|Has expired: Ignored for more than 5 years ports-mgmt/kpackagekit||2017-09-28|Has expired: Skipped for more than 5 years dns/rubygem-public_suffix2|dns/rubygem-public_suffix|2017-09-30|Has expired: Use dns/rubygem-public_suffix instead www/rubygem-deckar01-task_list1|www/rubygem-deckar01-task_list|2017-09-30|Has expired: Use www/rubygem-deckar01-task_list instead devel/py-twisted152|devel/py-twisted|2017-09-30|Has expired: Use devel/py-twisted instead devel/py-twistedCore|devel/py-twisted|2017-09-30|Has expired: Use devel/py-twisted instead devel/py-twistedFlow|devel/py-twisted|2017-09-30|Has expired: Use devel/py-twisted instead devel/py-twistedRunner|devel/py-twisted|2017-09-30|Has expired: Use devel/py-twisted instead dns/py-twistedNames|devel/py-twisted|2017-09-30|Has expired: Use devel/py-twisted instead mail/py-twistedMail|devel/py-twisted|2017-09-30|Has expired: Use devel/py-twisted instead net/py-twistedPair|devel/py-twisted|2017-09-30|Has expired: Use devel/py-twisted instead net-im/py-twistedWords|devel/py-twisted|2017-09-30|Has expired: Use devel/py-twisted instead news/py-twistedNews|devel/py-twisted|2017-09-30|Has expired: Use devel/py-twisted instead security/py-twistedConch|devel/py-twisted|2017-09-30|Has expired: Use devel/py-twisted instead textproc/py-twistedLore|devel/py-twisted|2017-09-30|Has expired: Use devel/py-twisted instead www/py-twistedWeb|devel/py-twisted|2017-09-30|Has expired: Use devel/py-twisted instead www/py-twistedWeb2|devel/py-twisted|2017-09-30|Has expired: Use devel/py-twisted instead devel/libclaw||2017-09-30|Has expired: useless for anything apart from removed games/plee-the-bear ports-mgmt/redports-node||2017-10-01|Has expired: Upstream is dead so port is not useable anymore sysutils/py3-iocage|sysutils/iocage|2017-10-02|Port was renamed audio/ventrilo-server||2017-10-04|No more freebsd distfiles net-im/ayttm||2017-10-04|Non functional graphics/diacanvas2||2017-10-04|GNOME2 library unused anymore sysutils/bacula5-client-static|sysutils/bacula-client-static|2017-10-05|Has expired: No upstream commits since 2013. Use sysutils/bacula-server sysutils/bacula5-client|sysutils/bacula-client|2017-10-05|Has expired: No upstream commits since 2013. Use sysutils/bacula-server sysutils/bacula5-bat|sysutils/bacula-bat|2017-10-05|Has expired: No upstream commits since 2013. Use sysutils/bacula-server sysutils/bacula5-server|sysutils/bacula-server|2017-10-05|Has expired: No upstream commits since 2013. Use sysutils/bacula-server net-mgmt/nagios-check_bacula5|net-mgmt/nagios-check_bacula|2017-10-05|Has expired: No upstream commits since 2013. Use sysutils/bacula-server sysutils/bacula5-docs|sysutils/bacula-docs|2017-10-05|Has expired: No upstream commits since 2013. Use sysutils/bacula-docs editors/vanubi||2017-10-07|Has expired: Vanubi is no longer actively maintained converters/py-bencode|converters/py-bencode.py|2017-10-07|Switch to a fork that supports both python2 and python3 japanese/jd||2017-10-08|Does not build and 2ch.net API has changed, so would not work anyway devel/vtable-dumper|devel/abi-compliance-checker|2017-10-08|Use abi-compliance-checker, which contains this program in newer version graphics/py-graph-dot||2017-10-08|Has expired: Unfetchable for more than six months (google code has gone away) graphics/py-graph||2017-10-08|Removed, depends on graphics/py-graph-dot net/py-python-cloudfiles||2017-10-12|Deprecated by usptream since August 1, 2013. Use databases/py-python-swiftclient instead audio/festdoc||2017-10-13|No version of the documentation matching current release audio/gstreamer-plugins-moodbar||2017-10-13|Abandonware, no public distfiles devel/arduino-glcd|devel/arduino-openglcd|2017-10-14|Switched to active fork x11-wm/awesome2|x11-wm/awesome|2017-10-14|Has expired: Awesome WM 2.x is deprecated use 4.x instead x11-wm/awesome3|x11-wm/awesome|2017-10-14|Has expired: Awesome WM 3.x is deprecated use 4.x instead www/moodle30|www/moodle33|2017-10-14|Has expired: Deprecated by upstream, please use www/moodle33 instead lang/gcc5-devel|lang/gcc5|2017-10-14|The GCC 5 branch has been closed, use the final release instead (or a newer major version) devel/vtcl||2017-10-16|Has expired: This port depends on Tcl/Tk 8.4 , which is no longer maintained. Please port it to 8.5+ editors/tpad||2017-10-16|Has expired: This port depends on Tcl/Tk 8.4 , which is no longer maintained. Please port it to 8.5+ games/polypuzzle||2017-10-16|Has expired: This port depends on Tcl/Tk 8.4 , which is no longer maintained. Please port it to 8.5+ multimedia/nxtvepg||2017-10-16|Has expired: This port depends on Tcl/Tk 8.4 , which is no longer maintained. Please port it to 8.5+ net/xpvm||2017-10-16|Has expired: This port depends on Tcl/Tk 8.4 , which is no longer maintained. Please port it to 8.5+ x11/tkXwin||2017-10-16|Has expired: This port depends on Tcl/Tk 8.4 , which is no longer maintained. Please port it to 8.5+ games/crafty-tablebase-pawn||2017-10-17|Waste of resources devel/p5-Log-Any-Adapter-Syslog|devel/p5-Log-Any|2017-10-19|Has expired: Merged with devel/p5-Log-Any lang/fpc-tcl||2017-10-20|Has expired: This port depends on Tcl/Tk 8.4 , which is no longer maintained. Please port it to 8.5+ net/asterisk11|net/asterisk13|2017-10-28|Has expired: Asterisk 11.x will reach EOL on 2017-10-25. Please migrate to net/asterisk13 lang/gcc5-aux|lang/gcc6-aux|2017-11-01|Has expired: Essentially unmaintained and replaced by gcc6-aux textproc/rubygem-rouge1|textproc/rubygem-rouge|2017-11-01|Has expired: Use textproc/rubygem-rouge instead devel/linux-c6-ncurses-base||2017-11-01|Merged into emulators/linux_base-c6 devel/linux-c7-ncurses-base||2017-11-01|Merged into emulators/linux_base-c7 databases/puppetdb-terminus3|databases/puppetdb-terminus4|2017-11-03|Has expired: End of life upstream databases/puppetdb3|databases/puppetdb4|2017-11-03|Has expired: End of life upstream net/libsocketcpp||2017-11-06|Has expired: Uses gets(3) security/py-btchip|security/py-btchip-python|2017-11-07|Rename to reflect official Python modules naming scheme devel/pear-PPW||2017-11-09|Has expired: Project is EoL lang/ats||2017-11-11|Has expired: Unmaintained, outdated, needs lots of refreshment databases/elixir-ecto_migrate||2017-11-11|Has expired: Broken for more than 6 months audio/gspeakers||2017-11-11|Has expired: Broken for more than 6 months net/p5-Filesys-SmbClient||2017-11-11|Has expired: Broken for more than 6 months audio/tclmidi||2017-11-11|Has expired: Broken for more than 6 months security/py-xmlsec||2017-11-11|Has expired: Broken for more than 6 months security/samba-virusfilter||2017-11-11|Has expired: Broken for more than 6 months textproc/ocaml-pxp||2017-11-11|Has expired: Broken for more than 6 months audio/sooperlooper||2017-11-11|Has expired: Broken for more than 6 months devel/dwarves||2017-11-11|Has expired: Broken for more than 6 months devel/cl-cffi-sbcl||2017-11-11|Has expired: Broken for more than 6 months devel/pinba_engine||2017-11-11|Has expired: Broken for more than 6 months devel/py-event||2017-11-11|Has expired: Broken for more than 6 months databases/glom||2017-11-11|Has expired: Broken for more than 6 months math/bargraph||2017-11-11|Has expired: Unfetchable for more than six months (google code has gone away) devel/oniguruma4|devel/oniguruma6|2017-11-12|Upstream no longer maintained, superseded by devel/oniguruma6 devel/oniguruma5|devel/oniguruma6|2017-11-12|Upstream no longer maintained, superseded by devel/oniguruma6 devel/oniguruma6|devel/oniguruma|2017-11-12|Rename devel/oniguruma6 to oniguruma (no other versions in ports tree) multimedia/plexhometheater||2017-11-12|Has expired: Broken for more than 6 months databases/cassandra2||2017-11-12|Has expired: Broken for more than 6 months graphics/geos35|graphics/geos|2017-11-12|Has expired: legacy version, no longer needed astro/gmapcatcher||2017-11-12|Has expired: Unfetchable for more than six months (google code has gone away) audio/smasher||2017-11-12|Has expired: Does not build with modern csound audio/csound|audio/csound6|2017-11-12|Has expired: Not supported upstream anymore, use csound6 french/eficas||2017-11-14|Removed with Code_Aster 13.4.0, should be replaced by aster-study in cad/salome databases/grass6|databases/grass7|2017-11-18|Removed in favor of grass 7 news/brag||2017-11-21|Has expired: Tcl/Tk 8.4 is no longer maintained, please use 8.5+ textproc/srilm||2017-11-21|Has expired: Tcl/Tk 8.4 is no longer maintained, please use 8.5+ x11-toolkits/tk84|x11-toolkits/tk85|2017-11-21|Has expired: Tcl/Tk 8.4 is no longer maintained, please use 8.5+ devel/tkinspect||2017-11-21|Has expired: Tcl/Tk 8.4 is no longer maintained, please use 8.5+ games/bogged||2017-11-21|Has expired: Tcl/Tk 8.4 is no longer maintained, please use 8.5+ games/ttraffic||2017-11-21|Has expired: Tcl/Tk 8.4 is no longer maintained, please use 8.5+ games/ifm||2017-11-21|Has expired: Tcl/Tk 8.4 is no longer maintained, please use 8.5+ games/tksol||2017-11-21|Has expired: Tcl/Tk 8.4 is no longer maintained, please use 8.5+ lang/tcl84|lang/tcl85|2017-11-21|Has expired: Tcl/Tk 8.4 is no longer maintained, please use 8.5+ mail/tkrat2||2017-11-21|Has expired: Tcl/Tk 8.4 is no longer maintained, please use 8.5+ multimedia/dtv||2017-11-21|Has expired: Tcl/Tk 8.4 is no longer maintained, please use 8.5+ net-mgmt/netwag||2017-11-21|Has expired: Tcl/Tk 8.4 is no longer maintained, please use 8.5+ net/hping-devel||2017-11-21|Has expired: Tcl/Tk 8.4 is no longer maintained, please use 8.5+ www/linux-firefox||2017-11-22|Has expired: Use native www/firefox or www/firefox-esr instead www/linux-seamonkey||2017-11-22|Has expired: Use native www/seamonkey instead graphics/linux-adobesvg||2017-11-22|Has expired: not supported by linux-firefox 52 or later sysutils/qjail2||2017-11-26|Has expired: Only for FreeBSD 8 and 9, use sysutils/qjail[4] instead www/newsbeuter|www/newsboat|2017-11-27|Port was renamed devel/buildbot|devel/py-buildbot|2017-11-29|Rename to comply with PyPI scheme devel/buildbot-console-view|devel/py-buildbot-console-view|2017-11-29|Rename to comply with PyPI scheme devel/buildbot-pkg|devel/py-buildbot-pkg|2017-11-29|Rename to comply with PyPI scheme devel/buildbot-waterfall-view|devel/py-buildbot-waterfall-view|2017-11-29|Rename to comply with PyPI scheme devel/buildbot-worker|devel/py-buildbot-worker|2017-11-29|Rename to comply with PyPI scheme devel/buildbot-www|devel/py-buildbot-www|2017-11-29|Rename to comply with PyPI scheme emulators/ppsspp-devel|emulators/ppsspp|2017-11-29|Out of date: use emulators/ppsspp for now audio/shairport|audio/shairport-sync|2017-11-29|Has expired: Officially unmaintained upstream. Use audio/shairport-sync instead accessibility/py3-speech-dispatcher|accessibility/py-speech-dispatcher@py36|2017-11-30|Moved to a flavored, generic, version accessibility/py3-atspi|accessibility/py-atspi@py36|2017-11-30|Moved to a flavored, generic, version archivers/py3-libarchive-c|archivers/py-libarchive-c@py36|2017-11-30|Moved to a flavored, generic, version audio/py3-mutagen|audio/py-mutagen@py36|2017-11-30|Moved to a flavored, generic, version audio/py3-pylast|audio/py-pylast@py36|2017-11-30|Moved to a flavored, generic, version databases/py3-apsw|databases/py-apsw@py36|2017-11-30|Moved to a flavored, generic, version databases/py3-bsddb3|databases/py-bsddb3@py36|2017-11-30|Moved to a flavored, generic, version databases/py3-mysqlclient|databases/py-mysqlclient@py36|2017-11-30|Moved to a flavored, generic, version databases/py3-psycopg2|databases/py-psycopg2@py36|2017-11-30|Moved to a flavored, generic, version databases/py34-gdbm|databases/py-gdbm@py34|2017-11-30|Moved to a flavored, generic, version databases/py34-sqlite3|databases/py-sqlite3@py34|2017-11-30|Moved to a flavored, generic, version databases/py35-gdbm|databases/py-gdbm@py35|2017-11-30|Moved to a flavored, generic, version databases/py35-sqlite3|databases/py-sqlite3@py35|2017-11-30|Moved to a flavored, generic, version databases/py36-gdbm|databases/py-gdbm@py36|2017-11-30|Moved to a flavored, generic, version databases/py36-sqlite3|databases/py-sqlite3@py36|2017-11-30|Moved to a flavored, generic, version devel/py27-setuptools|devel/py-setuptools@py27|2017-11-30|Moved to a flavored, generic, version devel/py3-threema-msgapi|devel/py-threema-msgapi@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-Jinja2|devel/py-Jinja2@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-apipkg|devel/py-apipkg@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-asttokens|devel/py-asttokens@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-babel|devel/py-babel@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-cffi|devel/py-cffi@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-click-log|devel/py-click-log@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-click-threading|devel/py-click-threading@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-click|devel/py-click@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-colorama|devel/py-colorama@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-coloredlogs|devel/py-coloredlogs@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-dateutil|devel/py-dateutil@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-dbus|devel/py-dbus@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-defusedxml|devel/py-defusedxml@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-docopt|devel/py-docopt@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-flake8-builtins|devel/py-flake8-builtins@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-flake8-docstrings|devel/py-flake8-docstrings@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-flake8-import-order|devel/py-flake8-import-order@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-flake8-polyfill|devel/py-flake8-polyfill@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-flake8-quotes|devel/py-flake8-quotes@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-flake8|devel/py-flake8@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-freezegun|devel/py-freezegun@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-gobject3|devel/py-gobject3@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-hgtools|devel/py-hgtools@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-icalendar|devel/py-icalendar@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-jedi|devel/py-jedi@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-jsonschema|devel/py-jsonschema@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-libpeas|devel/py-libpeas@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-libzfs|devel/py-libzfs@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-llfuse|devel/py-llfuse@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-lxml|devel/py-lxml@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-mccabe|devel/py-mccabe@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-mock|devel/py-mock@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-nose|devel/py-nose@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-pbr|devel/py-pbr@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-pip|devel/py-pip@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-pluggy|devel/py-pluggy@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-ply|devel/py-ply@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-pretend|devel/py-pretend@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-prompt_toolkit|devel/py-prompt_toolkit@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-protobuf|devel/py-protobuf@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-py|devel/py-py@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-pyasn1|devel/py-pyasn1@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-pycodestyle|devel/py-pycodestyle@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-pycparser|devel/py-pycparser@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-pydocstyle|devel/py-pydocstyle@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-pyflakes|devel/py-pyflakes@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-pygit2|devel/py-pygit2@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-pyicu|devel/py-pyicu@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-pylru-cache|devel/py-pylru-cache@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-pytest-capturelog|devel/py-pytest-capturelog@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-pytest-runner|devel/py-pytest-runner@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-pytest-timeout|devel/py-pytest-timeout@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-pytest-xdist|devel/py-pytest-xdist@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-pytest|devel/py-pytest@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-python-magic|devel/py-python-magic@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-pytz|devel/py-pytz@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-rubymarshal|devel/py-rubymarshal@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-scripttest|devel/py-scripttest@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-setproctitle|devel/py-setproctitle@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-setuptools_scm|devel/py-setuptools_scm@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-simplejson|devel/py-simplejson@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-six|devel/py-six@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-tabulate|devel/py-tabulate@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-toposort|devel/py-toposort@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-tox|devel/py-tox@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-tzlocal|devel/py-tzlocal@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-urwid|devel/py-urwid@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-vcversioner|devel/py-vcversioner@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-verboselogs|devel/py-verboselogs@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-virtualenv|devel/py-virtualenv@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-voluptuous|devel/py-voluptuous@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-wcwidth|devel/py-wcwidth@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-xdg|devel/py-xdg@py36|2017-11-30|Moved to a flavored, generic, version devel/py3-yaml|devel/py-yaml@py36|2017-11-30|Moved to a flavored, generic, version devel/py34-setuptools|devel/py-setuptools@py34|2017-11-30|Moved to a flavored, generic, version devel/py35-setuptools|devel/py-setuptools@py35|2017-11-30|Moved to a flavored, generic, version devel/py36-setuptools|devel/py-setuptools@py36|2017-11-30|Moved to a flavored, generic, version dns/py3-dnspython|dns/py-dnspython@py36|2017-11-30|Moved to a flavored, generic, version dns/py3-idna|dns/py-idna@py36|2017-11-30|Moved to a flavored, generic, version graphics/py3-cairo|graphics/py-cairo@py36|2017-11-30|Moved to a flavored, generic, version graphics/py3-imagesize|graphics/py-imagesize@py36|2017-11-30|Moved to a flavored, generic, version graphics/py3-pillow|graphics/py-pillow@py36|2017-11-30|Moved to a flavored, generic, version graphics/py3-pygraphviz|graphics/py-pygraphviz@py36|2017-11-30|Moved to a flavored, generic, version lang/cython3|lang/cython@py36|2017-11-30|Moved to a flavored, generic, version misc/py3-pexpect|misc/py-pexpect@py36|2017-11-30|Moved to a flavored, generic, version misc/py3-tqdm|misc/py-tqdm@py36|2017-11-30|Moved to a flavored, generic, version multimedia/py3-gstreamer1|multimedia/py-gstreamer1@py36|2017-11-30|Moved to a flavored, generic, version net-mgmt/py3-dnsdiag|net-mgmt/py-dnsdiag@py36|2017-11-30|Moved to a flavored, generic, version net/py3-netifaces|net/py-netifaces@py36|2017-11-30|Moved to a flavored, generic, version net/py3-pysocks|net/py-pysocks@py36|2017-11-30|Moved to a flavored, generic, version net/py3-urllib3|net/py-urllib3@py36|2017-11-30|Moved to a flavored, generic, version print/py3-fonttools|print/py-fonttools@py36|2017-11-30|Moved to a flavored, generic, version print/py3-pycups|print/py-pycups@py36|2017-11-30|Moved to a flavored, generic, version security/py3-certifi|security/py-certifi@py36|2017-11-30|Moved to a flavored, generic, version security/py3-cryptography|security/py-cryptography@py36|2017-11-30|Moved to a flavored, generic, version security/py3-ecdsa|security/py-ecdsa@py36|2017-11-30|Moved to a flavored, generic, version security/py3-libnacl|security/py-libnacl@py36|2017-11-30|Moved to a flavored, generic, version security/py3-openssl|security/py-openssl@py36|2017-11-30|Moved to a flavored, generic, version security/py3-pbkdf2|security/py-pbkdf2@py36|2017-11-30|Moved to a flavored, generic, version security/py3-pyaes|security/py-pyaes@py36|2017-11-30|Moved to a flavored, generic, version security/py3-pycrypto|security/py-pycrypto@py36|2017-11-30|Moved to a flavored, generic, version sysutils/py3-execnet|sysutils/py-execnet@py36|2017-11-30|Moved to a flavored, generic, version sysutils/py3-pkginfo|sysutils/py-pkginfo@py36|2017-11-30|Moved to a flavored, generic, version sysutils/py3-ptyprocess|sysutils/py-ptyprocess@py36|2017-11-30|Moved to a flavored, generic, version textproc/py3-asciinema|textproc/py-asciinema@py36|2017-11-30|Moved to a flavored, generic, version textproc/py3-pager|textproc/py-pager@py36|2017-11-30|Moved to a flavored, generic, version textproc/py3-MarkupSafe|textproc/py-MarkupSafe@py36|2017-11-30|Moved to a flavored, generic, version textproc/py3-alabaster|textproc/py-alabaster@py36|2017-11-30|Moved to a flavored, generic, version textproc/py3-chardet|textproc/py-chardet@py36|2017-11-30|Moved to a flavored, generic, version textproc/py3-docutils|textproc/py-docutils@py36|2017-11-30|Moved to a flavored, generic, version textproc/py3-feedparser|textproc/py-feedparser@py36|2017-11-30|Moved to a flavored, generic, version textproc/py3-humanfriendly|textproc/py-humanfriendly@py36|2017-11-30|Moved to a flavored, generic, version textproc/py3-hunspell|textproc/py-hunspell@py36|2017-11-30|Moved to a flavored, generic, version textproc/py3-libxml2|textproc/py-libxml2@py36|2017-11-30|Moved to a flavored, generic, version textproc/py3-numpydoc|textproc/py-numpydoc@py36|2017-11-30|Moved to a flavored, generic, version textproc/py3-pyPEG2|textproc/py-pyPEG2@py36|2017-11-30|Moved to a flavored, generic, version textproc/py3-pygments|textproc/py-pygments@py36|2017-11-30|Moved to a flavored, generic, version textproc/py3-pystemmer|textproc/py-pystemmer@py36|2017-11-30|Moved to a flavored, generic, version textproc/py3-qrcode|textproc/py-qrcode@py36|2017-11-30|Moved to a flavored, generic, version textproc/py3-snowballstemmer|textproc/py-snowballstemmer@py36|2017-11-30|Moved to a flavored, generic, version textproc/py3-sphinx|textproc/py-sphinx@py36|2017-11-30|Moved to a flavored, generic, version textproc/py3-sphinx_rtd_theme|textproc/py-sphinx_rtd_theme@py36|2017-11-30|Moved to a flavored, generic, version textproc/py3-texttable|textproc/py-texttable@py36|2017-11-30|Moved to a flavored, generic, version www/py3-cssutils|www/py-cssutils@py36|2017-11-30|Moved to a flavored, generic, version www/py3-httplib2|www/py-httplib2@py36|2017-11-30|Moved to a flavored, generic, version www/py3-requests|www/py-requests@py36|2017-11-30|Moved to a flavored, generic, version x11-toolkits/py34-tkinter|x11-toolkits/py-tkinter@py34|2017-11-30|Moved to a flavored, generic, version x11-toolkits/py35-tkinter|x11-toolkits/py-tkinter@py35|2017-11-30|Moved to a flavored, generic, version x11-toolkits/py36-tkinter|x11-toolkits/py-tkinter@py36|2017-11-30|Moved to a flavored, generic, version security/py-rekall_gui||2017-11-30|Has expired: PoC that is no longer supported security/webshag||2017-12-01|Has expired: Abandoned www/p5-Yahoo-Lifestyle||2017-12-01|Has expired: This service has been shut down games/linux-rtcw|games/iortcw|2017-12-01|Has expired: Use the native and open source games/iortcw instead java/bootstrap-openjdk|java/bootstrap-openjdk6|2017-12-01|Has expired: superseded by java/bootstrap-openjdk[68] lang/gcc46|lang/gcc6|2017-12-01|Has expired: Unsupported by upstream. Use GCC 6 or newer instead security/krb5-113|security/krb5-114|2017-12-03|Has expired: EOL twelve months after release of krb5-1.15 net/bird6|net/bird@ipv6|2017-12-06|Moved to a flavored version devel/kore-notls|devel/kore@notls|2017-12-06|Moved to a flavored version devel/llvm-cheri128|devel/llvm-cheri|2017-12-07|A single cheri compiler can now target 128-bit and 256-bit capabilities audio/cd-console||2017-12-13|Has expired: No public distfiles textproc/pecl-cld||2017-12-13|Has expired: Depends on expired devel/cld textproc/p5-Lingua-Identify-CLD||2017-12-13|Has expired: Depends on expired devel/cld devel/cld||2017-12-13|Has expired: Unfetchable for more than six months (google code has gone away) devel/py-ode|devel/py-PyODE|2017-12-14|Rename to reflect official Python modules naming scheme net-im/pork||2017-12-16|Removed, AIM shut down on 2017-12-15 security/aimsniff||2017-12-16|Removed, AIM shut down on 2017-12-15 net-im/bsflite||2017-12-18|Removed, AIM shut down on 2017-12-15 audio/last.fm||2017-12-18|Removed, Last.fm Radio shutdown in 2014-03 net-im/p5-Net-AIM||2017-12-19|Removed, AIM shut down on 2017-12-15 devel/swig13|devel/swig30|2017-12-20|swig 1.3 is not maintained, use swig 3.0 devel/swig20|devel/swig30|2017-12-20|swig 2.0 is not maintained, use swig 3.0 devel/android-tools-adb-devel|devel/android-tools-adb|2017-12-20|Out of date: use devel/android-tools-adb for now devel/android-tools-fastboot-devel|devel/android-tools-fastboot|2017-12-20|Out of date: use devel/android-tools-fastboot for now math/petsc|science/PETSc|2017-12-20|Recreated after it has been deleted in r366959 on 2014-09-01 math/petsc-mpich|science/PETSc|2017-12-20|Recreated after it has been deleted in r321243 on 2013-06-19 (it was a slave port) textproc/py-elasticsearch-py|textproc/py-elasticsearch|2017-12-21|Rename to match PyPI naming japanese/egg-canna||2017-12-25|Has expired: Requires Emacs versions before 23 editors/tree-widget||2017-12-26|Has expired: Now part of Emacs www/py-flup|www/py-flup6|2017-12-26|forked, for py3k support net/openh323||2017-12-27|Abandoned in 2007, continued as net/h323plus net/ohphone||2017-12-27|Part of OpenH323 project, abandoned in 2007 devel/pwlib||2017-12-27|Part of OpenH323 project, abandoned in 2007, continued as devel/ptlib deskutils/etask||2017-12-27|Has expired: Unsupported by upstream since 2007 misc/p5-Asterisk|misc/p5-asterisk-perl|2017-12-29|Rename to match upstream naming www/npm2|www/npm|2017-12-31|Has expired: use www/npm or www/npm-node* instead www/npm3|www/npm|2017-12-31|Has expired: use www/npm or www/npm-node* instead net/rubygem-fog-aws0|net/rubygem-fog-aws|2017-12-31|Has expired: use net/rubygem-fog-aws or net/rubygem-fog-aws1 instead net-mgmt/nrpe|net-mgmt/nrpe3|2018-01-01|nrpe 2.0 not maintained, use nrpe 3.0 net-mgmt/nrpe-ssl|net-mgmt/nrpe3|2018-01-01|nrpe 2.0 not maintained, use nrpe 3.0 security/gnupg20|security/gnupg|2018-01-01|Has expired: Will reach EOL upstream on 2017-12-31 dns/dualserver|dns/dnsmasq|2018-01-01|Has expired: Please migrate to dns/dnsmasq; over the years dualserver has become unmaintainable devel/p5-Parse-Pidl44|devel/p5-Parse-Pidl|2018-01-01|Has expired: use devel/p5-Parse-Pidl instead www/rubygem-jwt2|www/rubygem-jwt|2018-01-02|www/rubygem-jwt has been updated to 2.x misc/py-qt5-doc||2018-01-02|No longer shipped by upstream audio/beast||2018-01-05|Has expired: 4.5 years old version, six versions behind, requires old toolchain, and unmaintained devel/p5-MooseX-Role-WithOverloading||2018-01-06|Has expired: deprecated by upstream (obsolete with modern Moose) devel/p5-Test-Block||2018-01-06|Has expired: Marked as deprecated upstream x11-toolkits/qt5-declarative-render2d||2018-01-06|Merged into x11-toolkits/qt5-quick editors/vim-lite|editors/vim-console|2018-01-11|Renamed to reflect that it is console-only, not any lighter devel/py-repl|devel/py-pyrepl|2018-01-11|Rename to match pypi name devel/lua-bitop-51|devel/lua51-bitop|2018-01-14|Rename to lua51- prefix astro/boinc-setiathome-v7|astro/boinc-setiathome-v8|2018-01-14|Rename to v8 to reflect current version astro/boinc-setiathome-v8|astro/boinc-setiathome|2018-01-14|Rename to unversioned per adamw@ textproc/ruby-sary||2018-01-15|Has expired: Does not build with current versions of ruby textproc/ruby-deplate||2018-01-15|Has expired: Does not build with current versions of ruby www/ruby-aws||2018-01-15|Has expired: Does not build with current versions of ruby www/samidare||2018-01-15|Has expired: Does not build with current versions of ruby devel/ruby-calendar||2018-01-15|Has expired: Does not build with current versions of ruby devel/ruby-rbbr||2018-01-15|Has expired: Does not build with current versions of ruby devel/ruby-date2||2018-01-15|Has expired: Does not build with current versions of ruby audio/ruby-xmms2||2018-01-15|Has expired: Does not build with current versions of ruby net/unison-nox11|net/unison@nox11|2018-01-15|Moved to a flavored, generic, version audio/hydrogen-devel|audio/hydrogen|2018-01-17|Out of date: use audio/hydrogen for now graphics/py-rabbyt||2018-01-19|Has expired: Development ceased, no longer used in the ports deskutils/py-spice-gtk|deskutils/spice-gtk|2018-01-20|Old style Python bindings dropped, no difference from the master port lang/py-clojure|lang/py-clojure_py|2018-01-26|Rename to match PyPI naming www/tomcat-devel|www/tomcat9|2018-01-26|Apache Tomcat 9.0.4 is the first stable release of the 9.0.x series devel/rubygem-toml|textproc/rubygem-toml|2018-01-27|Move to a better category emulators/raine||2018-01-28|Has expired: Broken for more than 6 months mail/libmapi||2018-01-28|Has expired: Broken for more than 6 months www/lessc||2018-01-28|Has expired: Broken for more than 6 months www/uglifyjs||2018-01-28|Has expired: Broken for more than 6 months www/py-octoprint||2018-01-28|Has expired: Broken for more than 6 months www/xpi-noscript||2018-01-28|Has expired: Broken for more than 6 months www/npm-less-plugin-clean-css||2018-01-28|Has expired: Broken for more than 6 months www/caudium14||2018-01-28|Has expired: Depends on expiring lang/pike78 www/hinventory-client||2018-01-28|Has expired: Broken for more than 6 months security/tclgpg||2018-01-28|Has expired: Broken for more than 6 months security/pond||2018-01-28|Has expired: Broken for more than 6 months security/mdcrack||2018-01-28|Has expired: Broken for more than 6 months devel/npm-commander||2018-01-28|Has expired: Broken for more than 6 months devel/py-protocols-devel||2018-01-28|Has expired: Broken for more than 6 months devel/py-InlineEgg||2018-01-28|Has expired: Broken for more than 6 months devel/npm-amdefine||2018-01-28|Has expired: Broken for more than 6 months devel/npm-source-map||2018-01-28|Has expired: Broken for more than 6 months devel/libical-glib||2018-01-28|Has expired: Broken for more than 6 months devel/npm-graceful-readlink||2018-01-28|Has expired: Broken for more than 6 months devel/npm-clean-css||2018-01-28|Has expired: Broken for more than 6 months devel/py-ruledispatch||2018-01-28|Has expired: Depends on expiring devel/py-protocols-devel games/balazarbrothers||2018-01-28|Has expired: Broken for more than 6 months games/libretro-cores||2018-01-28|Has expired: Broken for more than 6 months games/gish-demo||2018-01-28|Has expired: Broken for more than 6 months games/cheech||2018-01-28|Has expired: Broken for more than 6 months audio/mbrolavox||2018-01-28|Has expired: Broken for more than 6 months audio/linux-mbrola||2018-01-28|Has expired: Depends on expiring audio/mbrolavox audio/gigedit||2018-01-28|Has expired: Broken for more than 6 months audio/gnomoradio||2018-01-28|Has expired: Broken for more than 6 months math/asir2000||2018-01-28|Has expired: Broken for more than 6 months multimedia/librespot||2018-01-28|Has expired: Broken for more than 6 months multimedia/bombono||2018-01-28|Has expired: Broken for more than 6 months lang/gcl||2018-01-28|Has expired: Broken for more than 6 months lang/pike78||2018-01-28|Has expired: Broken for more than 6 months shells/ambit||2018-01-28|Has expired: Broken for more than 6 months mail/evolution-mapi||2018-01-28|Has expired: Depends on expiring mail/libmapi devel/beautifyphp||2018-01-29|only works for PHP4 which is gone long ago devel/clanlib22|devel/clanlib|2018-01-29|No users in the ports tree, newer version available devel/php-xdebug|devel/pecl-xdebug|2018-01-30|Moved to pecl astro/py-pyfits|astro/py-astropy|2018-01-31|Has expired: Use astro/py-astropy instead devel/py-gitdb|devel/py-gitdb2|2018-01-31|Has expired: Use devel/py-gitdb2 instead devel/py-smmap|devel/py-smmap2|2018-01-31|Has expired: Use devel/py-smmap2 instead devel/rubygem-moneta06|devel/rubygem-moneta|2018-01-31|Has expired: Use devel/rubygem-moneta instead lang/ruby22|lang/ruby24|2018-01-31|Has expired: Upgrade to newer version (e.g. lang/ruby24) net/tcptraceroute-devel|net/tcptraceroute|2018-01-31|Has expired: Use net/tcptraceroute instead security/rubygem-openssl20|security/rubygem-openssl|2018-01-31|Has expired: Use security/rubygem-openssl instead sysutils/rubygem-hiera1|sysutils/rubygem-hiera|2018-01-31|Has expired: Use sysutils/rubygem-hiera instead www/py-django110|www/py-django111|2018-01-31|Has expired: Use www/py-django111 or www/py-django20 instead www/rubygem-http2|www/rubygem-http|2018-01-31|Has expired: Use www/rubygem-http instead www/rubygem-jekyll-watch1|www/rubygem-jekyll-watch|2018-01-31|Has expired: Use www/rubygem-jekyll-watch instead www/rubygem-puma2|www/rubygem-puma|2018-01-31|Has expired: Use www/rubygem-puma instead www/rubygem-turbolinks-classic|www/rubygem-turbolinks|2018-01-31|Has expired: Use www/rubygem-turbolinks instead databases/mysql-proxy||2018-01-31|Has expired: No longer maintained and not recommended for production use japanese/migemo-emacs23|japanese/migemo-emacs|2018-02-01|Moved to version agnostic name editors/emacs-nox11|editors/emacs@nox|2018-02-01|Moved to a flavored version audio/py-mad|audio/py-pymad|2018-02-03|Rename to match PyPI naming emulators/qemu-cheri128|emulators/qemu-cheri|2018-02-06|All versions installed in one port emulators/qemu-cheri128m|emulators/qemu-cheri|2018-02-06|All versions installed in one port chinese/eric6||2018-02-08|No longer shipped by upstream devel/cs-eric6||2018-02-08|No longer shipped by upstream devel/it-eric6||2018-02-08|No longer shipped by upstream devel/tr-eric6||2018-02-08|No longer shipped by upstream french/eric6||2018-02-08|No longer shipped by upstream portuguese/eric6||2018-02-08|No longer shipped by upstream devel/rubygem-event-bus||2018-02-08|Has expired: No longer maintained upstream accessibility/kdeaccessibility4|accessibility/kdeaccessibility-kde4|2018-02-10|Rename KDE4 metaports for simplicty deskutils/kdepim4-runtime|deskutils/kdepim-runtime-kde4|2018-02-10|Rename KDE4 metaports for simplicty deskutils/kdepim4|deskutils/kdepim-kde4|2018-02-10|Rename KDE4 metaports for simplicty deskutils/kdepimlibs4|deskutils/kdepimlibs-kde4|2018-02-10|Rename KDE4 metaports for simplicty devel/kdebindings4|devel/kdebindings-kde4|2018-02-10|Rename KDE4 metaports for simplicty devel/kdesdk4-kioslaves|devel/kdesdk-kioslaves-kde4|2018-02-10|Rename KDE4 metaports for simplicty devel/kdesdk4-strigi-analyzers|devel/kdesdk-strigi-analyzers-kde4|2018-02-10|Rename KDE4 metaports for simplicty devel/kdesdk4-thumbnailers|devel/kdesdk-thumbnailers-kde4|2018-02-10|Rename KDE4 metaports for simplicty devel/kdesdk4|devel/kdesdk-kde4|2018-02-10|Rename KDE4 metaports for simplicty games/kdegames4|games/kdegames-kde4|2018-02-10|Rename KDE4 metaports for simplicty graphics/kdegraphics4-mobipocket|graphics/kdegraphics-mobipocket-kde4|2018-02-10|Rename KDE4 metaports for simplicty graphics/kdegraphics4-strigi-analyzer|graphics/kdegraphics-strigi-analyzer-kde4|2018-02-10|Rename KDE4 metaports for simplicty graphics/kdegraphics4-svgpart|graphics/kdegraphics-svgpart-kde4|2018-02-10|Rename KDE4 metaports for simplicty graphics/kdegraphics4-thumbnailers|graphics/kdegraphics-thumbnailers-kde4|2018-02-10|Rename KDE4 metaports for simplicty graphics/kdegraphics4|graphics/kdegraphics-kde4|2018-02-10|Rename KDE4 metaports for simplicty misc/kdeedu4|misc/kdeedu-kde4|2018-02-10|Rename KDE4 metaports for simplicty misc/kdeutils4|misc/kdeutils-kde4|2018-02-10|Rename KDE4 metaports for simplicty multimedia/kdemultimedia4-ffmpegthumbs|multimedia/kdemultimedia-ffmpegthumbs-kde4|2018-02-10|Rename KDE4 metaports for simplicty multimedia/kdemultimedia4-mplayerthumbs|multimedia/kdemultimedia-mplayerthumbs-kde4|2018-02-10|Rename KDE4 metaports for simplicty multimedia/kdemultimedia4|multimedia/kdemultimedia-kde4|2018-02-10|Rename KDE4 metaports for simplicty net/kdenetwork4-filesharing|net/kdenetwork-filesharing-kde4|2018-02-10|Rename KDE4 metaports for simplicty net/kdenetwork4-strigi-analyzers|net/kdenetwork-strigi-analyzers-kde4|2018-02-10|Rename KDE4 metaports for simplicty net/kdenetwork4|net/kdenetwork-kde4|2018-02-10|Rename KDE4 metaports for simplicty sysutils/kdeadmin4|sysutils/kdeadmin-kde4|2018-02-10|Rename KDE4 metaports for simplicty www/kdewebdev4|www/kdewebdev-kde4|2018-02-10|Rename KDE4 metaports for simplicty x11-clocks/kdetoys4|x11-clocks/kdetoys-kde4|2018-02-10|Rename KDE4 metaports for simplicty x11-themes/kdeartwork4|x11-themes/kdeartwork-kde4|2018-02-10|Rename KDE4 metaports for simplicty x11/kdelibs4|x11/kdelibs-kde4|2018-02-10|Rename KDE4 metaports for simplicty devel/p5-Parse-Pidl||2018-02-10|Has expired: yes devel/rubygem-piston||2018-02-10|Has expired: No longer maintained upstream databases/postgresql92-server|databases/postgresql93-server|2018-02-10|Has expired: PostgreSQL 9.2 support has reached End-of-life. Please upgrade to a later version databases/postgresql92-client|databases/postgresql93-client|2018-02-10|Has expired: PostgreSQL 9.2 support has reached End-of-life. Please upgrade to a later version databases/postgresql92-contrib|databases/postgresql93-contrib|2018-02-10|Has expired: PostgreSQL 9.2 support has reached End-of-life. Please upgrade to a later version databases/postgresql92-docs|databases/postgresql93-docs|2018-02-10|Has expired: PostgreSQL 9.2 support has reached End-of-life. Please upgrade to a later version databases/postgresql92-pgtcl|databases/postgresql93-pgtcl|2018-02-10|Has expired: PostgreSQL 9.2 support has reached End-of-life. Please upgrade to a later version databases/postgresql92-plperl|databases/postgresql93-plperl|2018-02-10|Has expired: PostgreSQL 9.2 support has reached End-of-life. Please upgrade to a later version databases/postgresql92-plpython|databases/postgresql93-plpython|2018-02-10|Has expired: PostgreSQL 9.2 support has reached End-of-life. Please upgrade to a later version databases/postgresql92-pltcl|databases/postgresql93-pltcl|2018-02-10|Has expired: PostgreSQL 9.2 support has reached End-of-life. Please upgrade to a later version databases/pg_statsinfo||2018-02-10|Removed, only for PosgreSQL 9.2 databases/postgresql-repmgr2||2018-02-10|Removed, only for PostgreSQL 9.2 www/mod_security-devel|www/mod_security3|2018-02-12|Renamed, upstream has made a release devel/pear-channel-htmlpurifier|devel/pear-channel-htmlpurifier.org|2018-02-13|Rename for consistency games/lolcat|games/rubygem-lolcat|2018-02-13|Rename to match our rubygem- port naming net-mgmt/prometheus|net-mgmt/prometheus1|2018-02-14|Rename to include major version number in the portname textproc/rubygem-tidy||2018-02-14|Has expired: No longer needed and not maintained www/rubygem-scrapi||2018-02-14|Has expired: No longer maintained upstream devel/boost-python3-libs|devel/boost-python-libs@py36|2018-02-15|Flavorize net/quagga-esr|net/quagga|2018-02-15|Fixes available, go back to the regular quagga sysutils/krename-kde4|sysutils/krename|2018-02-16|Renamed to sysutils/krename net/grive|net/grive2|2018-02-17|Has expired: Unmaintained by upstream, use net/grive2 instead textproc/rubygem-sass-rails5|textproc/rubygem-sass-rails-rails4|2018-02-18|Rename to match our rubygem- port naming math/ufc||2018-02-18|Removed: No longer part of FEniCS, rolled into FFC devel/elixir-exrm||2018-02-19|Has expired: No longer maintained upstream devel/elixir-conform_exrm||2018-02-19|Has expired: No longer maintained upstream devel/elixir-sorted_set||2018-02-19|Has expired: No longer maintained upstream devel/elixir-red_black_tree||2018-02-19|Has expired: No longer maintained upstream emulators/wine-staging|emulators/wine-devel|2018-02-20|Broken for months, abandoned upstream misc/rubygem-dotenv-rails|misc/rubygem-dotenv-rails-rails4|2018-02-20|Rename to match our rubygem- port naming accessibility/kaccessible|accessibility/kaccessible-kde4|2018-02-22|Make room for KDE updates accessibility/jovie|accessibility/jovie-kde4|2018-02-22|Make room for KDE updates misc/libkdeedu|misc/libkdeedu-kde4|2018-02-22|Make room for KDE updates sysutils/kuser|sysutils/kuser-kde4|2018-02-22|Make room for KDE updates sysutils/nepomuk-widgets|sysutils/nepomuk-widgets-kde4|2018-02-22|Make room for KDE updates sysutils/nepomuk-core|sysutils/nepomuk-core-kde4|2018-02-22|Make room for KDE updates sysutils/baloo|sysutils/baloo-kde4|2018-02-22|Make room for KDE updates sysutils/kfilemetadata|sysutils/kfilemetadata-kde4|2018-02-22|Make room for KDE updates editors/kate-plugin-pate|editors/kate-plugin-pate-kde4|2018-02-22|Make room for KDE updates x11-clocks/ktux|x11-clocks/ktux-kde4|2018-02-22|Make room for KDE updates x11-clocks/amor|x11-clocks/amor-kde4|2018-02-22|Make room for KDE updates devel/smokeqt|devel/smokeqt-kde4|2018-02-22|Make room for KDE updates devel/smokegen|devel/smokegen-kde4|2018-02-22|Make room for KDE updates devel/p5-perlqt|devel/p5-perlqt-kde4|2018-02-22|Make room for KDE updates devel/smokekde|devel/smokekde-kde4|2018-02-22|Make room for KDE updates devel/ruby-qtruby|devel/ruby-qtruby-kde4|2018-02-22|Make room for KDE updates devel/p5-perlkde|devel/p5-perlkde-kde4|2018-02-22|Make room for KDE updates devel/ruby-krossruby|devel/ruby-krossruby-kde4|2018-02-22|Make room for KDE updates devel/py-pykde4|devel/py-pykde4-kde4|2018-02-22|Make room for KDE updates devel/py-krosspython|devel/py-krosspython-kde4|2018-02-22|Make room for KDE updates devel/py-pykdeuic4|devel/py-pykdeuic4-kde4|2018-02-22|Make room for KDE updates devel/ruby-korundum|devel/ruby-korundum-kde4|2018-02-22|Make room for KDE updates x11/kgamma|x11/kgamma-kde4|2018-02-22|Make room for KDE updates x11/libkonq|x11/libkonq-kde4|2018-02-22|Make room for KDE updates deskutils/superkaramba|deskutils/superkaramba-kde4|2018-02-22|Make room for KDE updates deskutils/kdeplasma-addons|deskutils/kdeplasma-addons-kde4|2018-02-22|Make room for KDE updates games/pairs|games/pairs-kde4|2018-02-22|Make room for KDE updates audio/kio-audiocd|audio/kio-audiocd-kde4|2018-02-22|Make room for KDE updates audio/kscd|audio/kscd-kde4|2018-02-22|Make room for KDE updates comms/kremotecontrol|comms/kremotecontrol-kde4|2018-02-22|Make room for KDE updates graphics/ksnapshot|graphics/ksnapshot-kde4|2018-02-22|Make room for KDE updates graphics/ksaneplugin|graphics/ksaneplugin-kde4|2018-02-22|Make room for KDE updates graphics/kqtquickcharts|graphics/kqtquickcharts-kde4|2018-02-22|Make room for KDE updates x11/kde4-baseapps|x11/kde-baseapps-kde4|2018-02-22|Make room for KDE updates x11/kde4-runtime|x11/kde-runtime-kde4|2018-02-22|Make room for KDE updates x11/kde4-workspace|x11/kde-workspace-kde4|2018-02-22|Make room for KDE updates print/kde4-print-manager|print/print-manager-kde4|2018-02-22|Make room for KDE updates x11-themes/kde4-base-artwork|x11-themes/kde-base-artwork-kde4|2018-02-22|Make room for KDE updates x11-themes/kde4-wallpapers|x11-themes/kde-wallpapers-kde4|2018-02-22|Make room for KDE updates x11-themes/kde4-wallpapers-freebsd|x11-themes/wallpapers-freebsd-kde4|2018-02-22|Make room for KDE updates sysutils/ksysguardd|sysutils/ksysguardd-kde4|2018-02-22|Make room for KDE updates x11/plasma-scriptengine-ruby|x11/plasma-scriptengine-ruby-kde4|2018-02-22|Make room for KDE updates x11/plasma-scriptengine-python|x11/plasma-scriptengine-python-kde4|2018-02-22|Make room for KDE updates misc/tpp||2018-02-23|Has expired: Depends on expired devel/ruby-ncurses net/raggle||2018-02-23|Has expired: Depends on expired devel/ruby-ncurses devel/ruby-ncurses||2018-02-23|Has expired: Marked BROKEN for more than 6 months math/octave-forge-octcdf||2018-02-24|No longer supported upstream math/octave-forge-pt_br||2018-02-24|No longer supported upstream devel/p5-Sys-Cpu|devel/p5-Sys-CPU|2018-02-27|Rename to match our p5- port naming net/eternaltcp|net/eternalterminal|2018-02-28|Renamed on the upstream author request databases/rubygem-flipper-active_record010||2018-02-28|Has expired: Use databases/rubygem-flipper-active_record instead devel/rubygem-blobstore_client||2018-02-28|Has expired: Only used by deprecated sysutils/rubygem-bosh_cli devel/rubygem-bosh-template||2018-02-28|Has expired: Only used by deprecated sysutils/rubygem-bosh_cli devel/rubygem-bosh_common||2018-02-28|Has expired: Only used by deprecated sysutils/rubygem-bosh_cli devel/rubygem-byebug9||2018-02-28|Has expired: Use devel/rubygem-byebug instead devel/rubygem-flipper010||2018-02-28|Has expired: Use devel/rubygem-flipper instead devel/rubygem-google-api-client010||2018-02-28|Has expired: Use devel/rubygem-google-api-client instead devel/rubygem-progressbar09||2018-02-28|Has expired: Only used by deprecated sysutils/rubygem-bosh_cli sysutils/rubygem-bosh_cli||2018-02-28|Has expired: Use net/bosh-cli (CLI v2) instead www/rubygem-gon-rails4||2018-02-28|Has expired: It is actually www/rubygem-gon with PKGNAMESUFFIX science/veusz|science/py-veusz|2018-03-01|Rename to match our py- port naming security/obfsproxy|security/py-obfsproxy-tor|2018-03-01|Rename to match our py- port naming devel/dotconf++||2018-03-02|Has expired: No upstream, not depend on in the ports tree emulators/gnuboy||2018-03-02|Has expired: Latest version is 1.0.5, older version does not fetch games/adgali||2018-03-02|Has expired: Mastersite disappeared games/tuxpuck||2018-03-02|Has expired: Mastersite disappeared japanese/migemo-emacs||2018-03-02|Has expired: Unmaintained math/clarence||2018-03-02|Has expired: Mastersite disappeared devel/cstringbuffer||2018-03-02|Has expired: Abandonware, no more upstream deskutils/charmap||2018-03-02|Has expired: Mastersite disappeared devel/afay||2018-03-02|Has expired: Abandonware, not used in the ports tree devel/alabastra||2018-03-02|Has expired: Abandonware, not used in the ports tree devel/adime||2018-03-02|Has expired: Abandonware, not used in the ports tree devel/boaconstructor||2018-03-02|Has expired: Abandonware, does not work with recent python/wxPython audio/amp||2018-03-02|Has expired: No more upstream devel/alf||2018-03-02|Has expired: Abandonware, unused in the ports tree net/remmina-plugin-gnome|net/remmina-plugin-secret|2018-03-04|Renamed upstream databases/php70-memcache|databases/php-memcache@php70|2018-03-08|Merge into a flavorized version databases/php71-memcache|databases/php-memcache@php71|2018-03-08|Merge into a flavorized version databases/php72-memcache|databases/php-memcache@php72|2018-03-08|Merge into a flavorized version ftp/php56-fastdfs|ftp/php-fastdfs@php56|2018-03-08|Merge into flavorized version ftp/php70-fastdfs|ftp/php-fastdfs@php70|2018-03-08|Merge into flavorized version ftp/php71-fastdfs|ftp/php-fastdfs@php71|2018-03-08|Merge into flavorized version ftp/php72-fastdfs|ftp/php-fastdfs@php72|2018-03-08|Merge into flavorized version www/unit-php56|www/unit-php@php56|2018-03-08|Merge into flavorized version www/unit-php70|www/unit-php@php70|2018-03-08|Merge into flavorized version www/unit-php71|www/unit-php@php71|2018-03-08|Merge into flavorized version www/unit-php72|www/unit-php@php72|2018-03-08|Merge into flavorized version databases/php70-memcached|databases/php-memcached|2018-03-08|Move to flavorized version www/openxmldir||2018-03-08|Has expired: Unmaintained, all www files wrongly belongs to www user www/hastymail2||2018-03-08|Has expired: Unmaintained, all www files wrongly belongs to www user www/dalbum||2018-03-08|Has expired: Unmaintained, all www files wrongly belongs to www user www/iwebcal||2018-03-08|Has expired: Unmaintained, all www files wrongly belongs to www user www/impresscms||2018-03-08|Has expired: Unmaintained, all www files wrongly belongs to www user www/freeway||2018-03-08|Has expired: Unmaintained upstream, all www files wrongly belongs to www user www/xaraya||2018-03-08|Has expired: Unmaintained, all www files wrongly belongs to www user www/subsonic||2018-03-08|Has expired: Unmaintained, all www files wrongly belongs to www user www/phpwebapp||2018-03-08|Has expired: Unmaintained upstream, all www files wrongly belongs to www user www/hastymail||2018-03-08|Has expired: Unmaintained, all www files wrongly belongs to www user www/b2evolution||2018-03-08|Has expired: Unmaintained, all www files wrongly belongs to www user www/textpattern||2018-03-08|Has expired: Unmaintained, all www files wrongly belongs to www user www/eventum||2018-03-08|Has expired: Unmaintained, all www files wrongly belongs to www user www/quickie||2018-03-08|Has expired: Unmaintained, all www files wrongly belongs to www user www/jinzora||2018-03-08|Has expired: Unmaintained, all www files wrongly belongs to www user www/zen-cart||2018-03-08|Has expired: Unmaintained, no upstream, all www files wrongly belongs to www user www/bblog||2018-03-08|Has expired: Unmaintained, all www files wrongly belongs to www user www/extjs||2018-03-08|Has expired: Unmaintained, all www files wrongly belongs to www user www/geeklog||2018-03-08|Has expired: Unmaintained, all www files wrongly belongs to www user www/lilurl||2018-03-08|Has expired: Unmaintained, all www files wrongly belongs to www user www/zikula||2018-03-08|Has expired: Unmaintained, no upstream, all www files wrongly belongs to www user www/yii||2018-03-08|Has expired: Unmaintained, all www files wrongly belongs to www user www/phpmp||2018-03-08|Has expired: Unmaintained, all www files wrongly belongs to www user www/lionwiki||2018-03-08|Has expired: Unmaintained, all www files wrongly belongs to www user databases/php-memcached|databases/pecl-memcached|2018-03-10|Remove duplicate port, use databases/pecl-memcached instead emulators/i386-wine-staging|emulators/i386-wine-devel|2018-03-10|Broken for months, abandoned upstream archivers/quazip-qt5|archivers/quazip@qt5|2018-03-11|Moved to a flavoured version devel/go-json-rest||2018-03-11|Go libraries aren't allowed (GH/ant0ine/go-json-rest) security/qtkeychain-qt4|security/qtkeychain@qt4|2018-03-12|Moved to a flavoured version security/qtkeychain-qt5|security/qtkeychain@qt5|2018-03-12|Moved to a flavoured version devel/libdbusmenu-qt5|devel/libdbusmenu-qt@qt5|2018-03-12|Moved to a flavoured version finance/electrum2|finance/electrum|2018-03-13|Has expired: Vulnerable legacy port, please use finance/electrum instead math/py-gsl|math/py-pygsl|2018-03-13|Rename to match PyPI naming www/mediawiki123|www/mediawiki127|2018-03-14|Has expired: Upstream no longer maintained www/mediawiki128|www/mediawiki130|2018-03-14|Has expired: Upstream no longer maintained sysutils/py-zfs||2018-03-16|Not needed since ZFS 28 net/freebsd-tftp||2018-03-16|Imported into base in FreeBSD 8.0 multimedia/plexpy|multimedia/tautulli|2018-03-17|Project renamed due to copyright infringement net-im/ring-daemon||2018-03-18|Ring can't build because it depends on custom bundled versions of other packages net-im/ring-libclient||2018-03-18|Ring can't build because it depends on custom bundled versions of other packages net-im/ring-gnome||2018-03-18|Ring can't build because it depends on custom bundled versions of other packages graphics/code-eli||2018-03-20|Has expired: Broken for more than 6 months databases/pg_rman||2018-03-20|Has expired: Broken for more than 6 months devel/elixir-simple_bayes||2018-03-20|Has expired: Broken for more than 6 months devel/elixir-stemmer||2018-03-20|Has expired: Broken for more than 6 months benchmarks/expedite||2018-03-20|Has expired: Broken for more than 6 months textproc/p5-HTML-CTPP2||2018-03-20|Has expired: Broken for more than 6 months textproc/rubygem-compass-rails||2018-03-20|Has expired: Broken for more than 6 months graphics/pfscalibration||2018-03-20|Deprecated: pfs-calibration is a part of pfstools (from version 2.0) graphics/pfstmo||2018-03-20|Deprecated: pfstmo is a part of pfstools games/timeseal||2018-03-22|Has expired: Abandoned, outdated, requires COMPAT_43 kernel option which was removed from GENERIC in FreeBSD 7.0 net-im/ktp-kded-integration-module|net-im/ktp-kded-integration-module-kde4|2018-03-23|Make room for KDE updates net-im/plasma-applet-ktp|net-im/plasma-applet-ktp-kde4|2018-03-23|Make room for KDE updates multimedia/gmencoder||2018-03-23|Abandonware, does not support modern codecs mail/wanderlust-devel|mail/wanderlust|2018-03-23|Removed, use mail/wanderlust instead lang/x10||2018-03-25|Has expired: Broken for more than 6 months science/siril|astro/siril|2018-03-25|Moved to a more appropriate category net/samba44|net/samba45|2018-03-26|Has expired: unsupported upstream mail/sisyphus||2018-03-26|Has expired: Never built www/fira-webfont||2018-03-26|Has expired: Unused with no apparent use case www/dummyflash||2018-03-26|Has expired: Unused, unmaintained, and obsolete devel/guikachu||2018-03-26|Has expired: Broken for more than 9 months www/npm4|www/npm|2018-03-31|Has expired: Use www/npm instead devel/lua-lpeg51|devel/lua-lpeg|2018-03-31|Has expired: Use devel/lua-lpeg instead net/p5-Net-Jaiku||2018-03-31|Has expired: Upstream disappeared and jaiku.com returns 404 www/py-django-devel|www/py-django|2018-03-31|Has expired: Outdated version. Use www/py-django instead security/rubygem-rpam2-3|security/rubygem-rpam2|2018-03-31|Has expired: Use security/rubygem-rpam2 instead textproc/rubygem-fast_xs073|textproc/rubygem-fast_xs|2018-03-31|Has expired: Use textproc/rubygem-fast_xs instead math/abacus||2018-04-03|Has expired: Unmaintained and has a broken shared library audio/muse||2018-04-03|Has expired: Unmaintained upstream, crashes at runtime net/paris-traceroute|net/scamper|2018-04-03|Has expired: Legacy paris-traceroute is not supported anymore. Use net/scamper instead net-im/cjc||2018-04-03|Has expired: Depends on expired net-im/py-xmpp net-im/py-pyxmpp||2018-04-03|Has expired: Obsoleted in favor of PyXMPP2 converters/php5-bsdconv|converters/php-bsdconv|2018-04-03|It supports PHP 7 since 11.5.0 converters/rubygem-bsdconv|converters/rubygem-ruby-bsdconv|2018-04-03|Rename to match our rubygem- port naming www/piwik|www/matomo|2018-04-06|Project renamed textproc/py-curator-py|textproc/py-elasticsearch-curator|2018-04-09|Follow existing Elasticsearch naming conventions sysutils/memtest|sysutils/memtester|2018-04-09|Use actual upstream name textproc/elasticsearch5-x-pack||2018-04-09|Use elasticsearch-plugin to install X-Pack textproc/kibana5-x-pack||2018-04-09|Use kibana-plugin to install X-Pack textproc/elasticsearch||2018-04-09|ElasticSearch 1.x End of Life textproc/elasticsearch-plugin-hq||2018-04-09|ElasticSearch 1.x End of Life textproc/elasticsearch-plugin-marvel||2018-04-09|ElasticSearch 1.x End of Life textproc/elasticsearch-plugin-migration||2018-04-09|ElasticSearch 1.x End of Life textproc/elasticsearch-plugin-sql||2018-04-09|ElasticSearch 1.x End of Life textproc/elasticsearch-river-rabbitmq||2018-04-09|ElasticSearch 1.x End of Life devel/libkgapi|devel/libkgapi-kde4|2018-04-11|Make room for KDE updates finance/libalkimia|finance/alkimia-qt4|2018-04-13|Project renamed security/py-zxcvbn-python|security/py-zxcvbn|2018-04-13|Renamed upstream devel/py-libusb115|devel/py-libusb1|2018-04-14|Unused and unmaintained upstream devel/qca-qt5|devel/qca@qt5|2018-04-14|Moved to a flavoured version devel/qjson-qt5|devel/qjson@qt5|2018-04-14|Moved to a flavoured version sysutils/polkit-qt5|sysutils/polkit-qt@qt5|2018-04-14|Moved to flavoured version multimedia/gstreamer1-qt4|multimedia/gstreamer1-qt@qt4|2018-04-14|Moved to a flavoured version multimedia/gstreamer1-qt5|multimedia/gstreamer1-qt@qt5|2018-04-14|Moved to a flavoured version www/mod_antiloris||2018-04-16|Apache 2.2 End of Life www/mod_auth_imap2||2018-04-16|Apache 2.2 End of Life www/mod_authn_sasl||2018-04-16|Apache 2.2 End of Life www/mod_bw||2018-04-16|Apache 2.2 End of Life www/mod_cband||2018-04-16|Apache 2.2 End of Life www/mod_clamav||2018-04-16|Apache 2.2 End of Life www/mod_extract_forwarded||2018-04-16|Apache 2.2 End of Life www/mod_hosts_access||2018-04-16|Apache 2.2 End of Life www/mod_log_config-st||2018-04-16|Apache 2.2 End of Life www/mod_log_mysql||2018-04-16|Apache 2.2 End of Life www/mod_log_sql2-dtc||2018-04-16|Apache 2.2 End of Life www/mod_macro22||2018-04-16|Apache 2.2 End of Life www/mod_musicindex||2018-04-16|Apache 2.2 End of Life www/mod_ntlm2||2018-04-16|Apache 2.2 End of Life www/mod_proxy_html||2018-04-16|Apache 2.2 End of Life www/mod_remoteip||2018-04-16|Apache 2.2 End of Life www/mod_spdy||2018-04-16|Apache 2.2 End of Life www/mod_uid||2018-04-16|Apache 2.2 End of Life www/mod_vhost_ldap||2018-04-16|Apache 2.2 End of Life www/mod_whatkilledus||2018-04-16|Apache 2.2 End of Life www/mod_xml2enc||2018-04-16|Apache 2.2 End of Life www/apache22||2018-04-16|Apache 2.2 End of Life www/mod_python33||2018-04-16|Apache 2.2 End of Life irc/xchat|irc/hexchat|2018-04-17|Has expired: Unmaintained upstream, use irc/hexchat instead irc/xchat-fish|irc/hexchat-fish|2018-04-17|Removed, master port irc/xchat expired irc/xchat-mircryption||2018-04-17|Removed, master port irc/xchat expired irc/xchat-ruby||2018-04-17|Removed, master port irc/xchat expired devel/subversion18|devel/subversion|2018-04-19|Has expired: EoL, use devel/subversion or devel/subversion19 math/rkward-kde4|math/rkward-kde|2018-04-21|No more specific to KDE4 devel/py-msgpack-python|devel/py-msgpack|2018-04-22|Upstream renamed package name on PyPI from msgpack-python to msgpack since 0.5 deskutils/py-pycarddav|www/pycarddav|2018-04-23|Remove dupplicate port x11-toolkits/qwt6-designerplugin||2018-04-25|Merged with x11-toolkits/qwt6 math/octave-forge-ocs||2018-04-25|Removed, depends on expired math/octave-forge-odepkg net/google-daemon|sysutils/py-google-compute-engine|2018-04-25|Has expired: Please use sysutils/py-google-compute-engine instead net/google-startup-scripts|sysutils/py-google-compute-engine|2018-04-25|Has expired: Please use sysutils/py-google-compute-engine instead math/octave-forge-odepkg||2018-04-25|Has expired, not a valid package for Octave version >= 4.2.1 devel/kdevelop-php|devel/kdevelop-php-kde4|2018-04-28|Make room for KDevelop upgrade devel/kdevelop-php-docs|devel/kdevelop-php-docs-kde4|2018-04-28|Make room for KDevelop upgrade devel/kdevplatform|devel/kdevplatform-kde4|2018-04-28|Make room for KDevelop upgrade lang/py-clojure_py||2018-04-30|Has expired: Upstream disappeared and it does not build with latest setuptools (39.0.1) textproc/rubygem-escape_utils-rails4|textproc/rubygem-escape_utils|2018-04-30|Has expired: Use textproc/rubygem-escape_utils instead databases/rubygem-seed-fu236|databases/rubygem-seed-fu|2018-05-01|Has expired: Obsoleted by update of www/gitlab. Please use databases/rubygem-seed-fu security/polarssl13||2018-05-01|Has expired: has reached end of life devel/tesla||2018-05-06|Outdated and almost certainly unused devel/llvm39||2018-05-08|Obsolete, no remaining dependencies textproc/p5-Spork||2018-05-09|Removed, depends on expired www/p5-Kwiki www/p5-Kwiki||2018-05-09|Has expired: All www files wrongly belongs to www user x11-servers/x11rdp|x11-drivers/xorgxrdp|2018-05-13|Obsoleted by update of net/xrdp net-p2p/btsync|net-p2p/rslsync|2018-05-13|Renamed by the vendor net-im/licq-msn||2018-05-14|MSN Messenger service terminated 2017-05-19 finance/gnucash@guile1||2018-05-14|Version 3.0 dropped guile1 support. Use unflavored finance/gnucash instead net-im/rubygem-earthquake||2018-05-15|Broken and unmaintained upstream security/rubygem-jugyo-twitter_oauth||2018-05-15|The only consumer of this port (net-im/rubygem-earthquake) has been removed sysutils/bareos-bat||2018-05-18|Removed, use sysutils/bareos-webui or install bareos16 ports www/p5-CGI_Lite|www/p5-CGI-Lite|2018-05-20|Rename to match upstream naming www/mod_proxy_uwsgi|www/apache24|2018-05-22|Module has been merged into Apache 2.4 devel/p5-reaper|devel/p5-Reaper|2018-05-22|Rename to match upstream naming textproc/py-pyelasticsearch||2018-05-22|Has expired: Not depended upon anymore net/corosync|net/corosync2|2018-05-24|There are now multiple versions of corosync net/pacemaker|net/pacemaker1|2018-05-24|There are now multiple versions of pacemaker editors/lazarus-lcl-gtk2|editors/lazarus|2018-05-25|Removed, no longer needed editors/lazarus-lcl-nogui||2018-05-25|Removed, no longer needed editors/lazarus-lcl-qt|editors/lazarus-qt4|2018-05-25|Removed, no longer needed editors/lazarus-lcl-qt5|editors/lazarus-qt5|2018-05-25|Removed, no longer needed editors/lazarus-lcl-units||2018-05-25|Removed, no longer needed net/bird-devel|net/bird2|2018-05-25|There are now multiple versions of bird devel/hs-BNFC||2018-05-25|Removed, no longer supported graphics/hs-HGL||2018-05-25|Removed, no longer supported devel/hs-DrIFT||2018-05-25|Removed, no longer supported devel/hs-hastache||2018-05-25|Removed, no longer supported devel/hs-monadplus||2018-05-25|Removed, no longer supported devel/hs-stm||2018-05-25|Removed, no longer supported devel/hs-text||2018-05-25|Removed, no longer supported science/hs-bio||2018-05-25|Removed, no longer supported textproc/hs-parsec||2018-05-25|Removed, no longer supported audio/calf|audio/calf-lv2|2018-05-27|Added -lv2 suffix: the port mostly provides LV2 plugins net/rubygem-gitaly-proto083|net/rubygem-gitaly-proto|2018-06-01|Has expired: Obsoleted by update of www/gitlab. Please use net/rubygem-gitaly-proto instead net/rubygem-gitaly-proto084|net/rubygem-gitaly-proto|2018-06-01|Has expired: Obsoleted by update of www/gitlab. Please use net/rubygem-gitaly-proto instead textproc/rubygem-github-linguist47|textproc/rubygem-github-linguist|2018-06-01|Has expired: Obsoleted by update of www/gitlab. Please use textproc/rubygem-github-linguist instead textproc/rubygem-loofah20|textproc/rubygem-loofah|2018-06-01|Has expired: Obsoleted by update of www/gitlab. Please use textproc/rubygem-loofah instead www/npm-node4|www/npm|2018-06-01|Has expired: Use www/npm instead emulators/qemu-launcher||2018-06-01|Has expired: Upstream is gone textproc/kibana3||2018-06-01|Has expired: End of Life was 2015-11-15, depends on expired www/node4 textproc/kibana41||2018-06-01|Has expired: End of Life was 2016-11-10, depends on expired www/node4 textproc/kibana43||2018-06-01|Has expired: End of Life was 2017-05-24, depends on expired www/node4 textproc/kibana44||2018-06-01|Has expired: End of Life was 2017-08-02, depends on expired www/node4 textproc/kibana45||2018-06-01|Has expired: End of Life was 2017-09-30, depends on expired www/node4 www/node4|www/node|2018-06-01|Has expired: Node.js v4.x reaches end-of-life on 2018-04-30, see https://github.com/nodejs/Release net/frr|net/frr4|2018-06-02|Will introduce multiple versions of frr lang/perl5.22|lang/perl5.26|2018-06-02|Has expired: Support ends three years after .0 release, please upgrade to a more recent version of Perl lang/sdcc-devel|lang/sdcc|2018-06-06|No longer useful net/py-pyldap|net/py-ldap|2018-06-06|Has expired: This code has merged back to python-ldap. Please use net/py-ldap instead biology/ssaha||2018-06-07|Has expired: Broken for more than 6 months biology/crux||2018-06-07|Has expired: Broken for more than 6 months biology/ariadne||2018-06-07|Has expired: Broken for more than 6 months cad/sceptre||2018-06-07|Has expired: Broken for more than 6 months cad/cider||2018-06-07|Has expired: Broken for more than 6 months chinese/scim-array||2018-06-07|Has expired: Broken for more than 6 months chinese/xpdf||2018-06-07|Has expired: Broken for more than 6 months chinese/telnet||2018-06-07|Has expired: Broken for more than 6 months comms/java-commapi-freebsd||2018-06-07|Has expired: Depends on BROKEN and expiring comms/java-commapi comms/soundmodem||2018-06-07|Has expired: Broken for more than 6 months comms/jsdr||2018-06-07|Has expired: Broken for more than 6 months comms/java-commapi||2018-06-07|Has expired: Broken for more than 6 months converters/pdf2djvu||2018-06-07|Has expired: Broken for more than 6 months databases/rdb||2018-06-07|Has expired: Broken for more than 6 months databases/animenfo-client||2018-06-07|Has expired: Broken for more than 6 months databases/ruby-mysql||2018-06-07|Has expired: Broken for more than 6 months databases/animenfo-client-gtk||2018-06-07|Has expired: Broken for more than 6 months databases/rdfdb||2018-06-07|Has expired: Broken for more than 6 months databases/riak2||2018-06-07|Has expired: Broken for more than 6 months devel/subversion-static||2018-06-07|Has expired: Broken for more than 6 months japanese/xgate||2018-06-07|Has expired: Broken for more than 6 months textproc/opengrm-ngram||2018-06-07|Has expired: Broken for more than 6 months textproc/ocaml-tyxml||2018-06-07|Has expired: Depends on BROKEN and expiring www/ocaml-net www/ocaml-net||2018-06-07|Has expired: Broken for more than 6 months audio/linux-genpuid||2018-06-07|Has expired: Broken for more than 6 months x11/enventor||2018-06-07|Has expired: Broken for more than 6 months audio/xmms-timidity||2018-06-07|Has expired: Broken for more than 6 months audio/kaudiocreator||2018-06-07|Has expired: Broken for more than 6 months audio/jxm||2018-06-07|Has expired: Depends on BROKEN and expiring comms/java-commapi audio/deforaos-mixer||2018-06-07|Has expired: Broken for more than 6 months audio/gkrellmss2||2018-06-07|Has expired: Broken for more than 6 months audio/ogg2mp3||2018-06-07|Has expired: Broken for more than 6 months audio/abcmidi||2018-06-07|Has expired: Broken for more than 6 months benchmarks/netpipe||2018-06-07|Has expired: Broken for more than 6 months biology/plink||2018-06-07|Has expired: Broken for more than 6 months science/orthanc||2018-06-07|Has expired: Broken for more than 3 months science/orthanc-dicomweb||2018-06-07|Removed, depends on expired science/orthanc science/orthanc-postgresql||2018-06-07|Removed, depends on expired science/orthanc science/orthanc-webviewer||2018-06-07|Removed, depends on expired science/orthanc graphics/libkface||2018-06-09|Has expired: No longer maintained upstream math/scilab-toolbox-sivp||2018-06-09|Has expired: Cannot build with newer opencv math/clipper|graphics/polyclipping|2018-06-11|Duplicate port chinese/unrar|archivers/unrar|2018-06-13|Has expired: Use archivers/unrar instead devel/automake-wrapper|devel/automake|2018-06-14|No longer needed net/samba45|net/samba46|2018-06-14|Has expired: yes textproc/py-elasticsearch-dsl-py||2018-06-15|Has expired: ElasticSearch 1.x End of Life textproc/py-elasticsearch2-dsl-py||2018-06-15|Has expired: Needs Python ElasticSearch 2.x textproc/elasticsearch2-plugin-marvel||2018-06-15|Removed, depends on expired textproc/elasticsearch2 textproc/elasticsearch2-plugin-sql||2018-06-15|Removed, depends on expired textproc/elasticsearch2 textproc/elasticsearch2-plugin-hq||2018-06-15|Removed, depends on expired textproc/elasticsearch2 textproc/elasticsearch2-plugin-migration||2018-06-15|Removed, depends on expired textproc/elasticsearch2 textproc/elasticsearch2||2018-06-15|Has expired: Elastic 2.4 EoL is 2018-02-28 net-im/imspector||2018-06-16|Has expired: No active upstream, master site disappeared long ago net/syncthing-discosrv|net/syncthing|2018-06-18|Has expired: Included in net/syncthing now net/syncthing-inotify|net/syncthing|2018-06-18|Has expired: Included in net/syncthing now net/syncthing-cli|net/syncthing|2018-06-18|Has expired: Included in net/syncthing now x11-themes/adwaita-common||2018-06-19|Move to flavored version x11-themes/adwaita-qt4|x11-themes/adwaita-qt@qt4|2018-06-19|Move to flavored version x11-themes/adwaita-qt5|x11-themes/adwaita-qt@qt5|2018-06-19|Move to flavored version net-p2p/qbittorrent-nox11|net-p2p/qbittorrent@nox|2018-06-20|Moved to a flavored version math/digitizer|graphics/engauge-digitizer|2018-06-20|The previously deleted port math/digitizer is now graphics/engauge-digitizer multimedia/qt5-phonon4|multimedia/phonon@qt5|2018-06-21|Moved to a flavored version multimedia/qt5-phonon4-designerplugin|multimedia/phonon-designerplugin@qt5|2018-06-21|Moved to a flavored version multimedia/qt5-phonon4-gstreamer|multimedia/phonon-gstreamer@qt5|2018-06-21|Moved to a flavored version multimedia/qt5-phonon4-vlc|multimedia/phonon-vlc@qt5|2018-06-21|Moved to a flavored version net/libproxy-gnome|net/libproxy-gnome2|2018-06-22|Renamed to make slave names consistent www/npapi-vlc||2018-06-22|Removed, depends on expired www/libxul www/libxul||2018-06-22|Has expired: NPAPI are no longer supported mail/postfix211||2018-06-24|Has expired: Not supported anymore by vendor. Please choose a new one version mail/postfix211-sasl||2018-06-24|Has expired: Not supported anymore by vendor. Please choose a new one version devel/py-binplist||2018-06-26|Has expired: Not depended upon anymore, no longer maintained upstream devel/bats|devel/bats-core|2018-07-01|Bats maintainership changed upstream to bats-core team net/rubygem-omniauth-twitter12|net/rubygem-omniauth-twitter|2018-07-03|Has expired: Obsoleted by update of www/gitlab. Please use net/rubygem-omniauth-twitter instead net/rubygem-gitaly-proto088|net/rubygem-gitaly-proto|2018-07-03|Has expired: Obsoleted by update of www/gitlab. Please use net/rubygem-gitaly-proto instead net/rubygem-octokit46|net/rubygem-octokit|2018-07-03|Has expired: Obsoleted by update of www/gitlab. Please use net/rubygem-octokit instead net/rubygem-fog-google0|net/rubygem-fog-google|2018-07-03|Has expired: Obsoleted by update of www/gitlab. Please use net/rubygem-fog-google instead net/rubygem-fog-aws1|net/rubygem-fog-aws|2018-07-03|Has expired: Obsoleted by update of www/gitlab. Please use net/rubygem-fog-aws instead textproc/rubygem-asciidoctor-plantuml007|textproc/rubygem-asciidoctor-plantuml|2018-07-03|Has expired: Obsoleted by update of www/gitlab. Please use textproc/rubygem-asciidoctor-plantuml instead graphics/mitsuba||2018-07-03|Has expired: Broken for more than 6 months mail/p5-Net-SMTP-SSL||2018-07-03|Has expired: Deprecated by upstream, use Net::SMTP instead www/rubygem-kubeclient22|www/rubygem-kubeclient|2018-07-03|Has expired: Obsoleted by update of www/gitlab. Please use www/rubygem-kubeclient instead security/rubygem-doorkeeper42|security/rubygem-doorkeeper|2018-07-03|Has expired: Obsoleted by update of www/gitlab. Please use security/rubygem-doorkeeper instead security/rubygem-net-ssh41|security/rubygem-net-ssh|2018-07-03|Has expired: Obsoleted by update of www/gitlab. Please use security/rubygem-net-ssh instead security/rubygem-omniauth-saml17|security/rubygem-omniauth-saml|2018-07-03|Has expired: Obsoleted by update of www/gitlab. Please use security/rubygem-omniauth-saml instead security/rubygem-doorkeeper-openid_connect12|security/rubygem-doorkeeper-openid_connect|2018-07-03|Has expired: Obsoleted by update of www/gitlab. Please use security/rubygem-doorkeeper-openid_connect instead security/rubygem-attr_encrypted30|security/rubygem-attr_encrypted|2018-07-03|Has expired: Obsoleted by update of www/gitlab. Please use security/rubygem-attr_encrypted instead security/rubygem-omniauth14|security/rubygem-omniauth|2018-07-03|Has expired: Obsoleted by update of www/gitlab. Please use security/rubygem-omniauth instead devel/rubygem-flipper011|devel/rubygem-flipper|2018-07-03|Has expired: Obsoleted by update of www/gitlab. Please use devel/rubygem-flipper instead devel/rubygem-ruby-prof016|devel/rubygem-ruby-prof|2018-07-03|Has expired: Obsoleted by update of www/gitlab. Please use devel/rubygem-ruby-prof instead devel/rubygem-recursive-open-struct10|devel/rubygem-recursive-open-struct|2018-07-03|Has expired: Obsoleted by update of www/rubygem-kubeclient. Please use devel/rubygem-recursive-open-struct instead devel/rubygem-flipper-active_support_cache_store011|devel/rubygem-flipper-active_support_cache_store|2018-07-03|Has expired: Obsoleted by update of www/gitlab. Please use devel/rubygem-flipper-active_support_cache_store instead devel/rubygem-gettext_i18n_rails_js12|devel/rubygem-gettext_i18n_rails_js|2018-07-03|Has expired: Obsoleted by update of www/gitlab. Please use devel/rubygem-gettext_i18n_rails_js instead devel/phpunit|devel/phpunit6|2018-07-03|Has expired: No longer maintained upstream devel/rubygem-recursive-open-struct100|devel/rubygem-recursive-open-struct|2018-07-03|Has expired: Obsoleted by update of www/gitlab. Please use devel/rubygem-recursive-open-struct instead databases/rubygem-flipper-active_record011|databases/rubygem-flipper-active_record|2018-07-03|Has expired: Obsoleted by update of www/gitlab. Please use databases/rubygem-flipper-active_record instead databases/mongodb34-rocks||2018-07-03|Has expired: Broken for more than 6 months math/freemat||2018-07-03|Has expired: Complex, unmaintained software with obsolete dependencies dns/bind99|dns/bind911|2018-07-04|Has expired: Going out of support, please migrate to dns/bind911 dns/bind910|dns/bind911|2018-07-04|Has expired: Going out of support, please migrate to dns/bind911 www/gitlab|www/gitlab-ce|2018-07-04|Port renamed to match name on gitlab.org devel/rubygem-oj2|devel/rubygem-oj|2018-07-04|Has expired: Obsoleted by update of www/gitlab. Please use devel/rubygem-oj instead. net-mgmt/sx||2018-07-08|Has expired: Upstream gone, does not fetch www/sxweb||2018-07-08|Removed, web frontend of net-mgmt/sx, upstream also gone sysutils/logstash|sysutils/logstash5|2018-07-10|Has expired: End of Life was 2018-02-28 textproc/kibana46|textproc/kibana5|2018-07-10|Has expired: End of Life was 2018-02-28 print/cups-connector|print/cloud-print-connector|2018-07-11|Project renamed upstream net/wpa_gui|net/wpa_supplicant_gui|2018-07-12|Rename to wpa_supplicant_gui for ease of search lang/gcc47|lang/gcc6|2018-07-15|Has expired: Unsupported by upstream. Use GCC 6 or newer instead. net-p2p/transmission-qt4|net-p2p/transmission-qt@qt4|2018-07-15|Moved into flavored version net-p2p/transmission-qt5|net-p2p/transmission-qt@qt5|2018-07-15|Moved into flavored version java/jaf||2018-07-16|Included in JRE since 1.6 version net/p5-ZConf-Bookmarks||2018-07-16|Has expired: Unmaintained net/p5-ZConf||2018-07-16|Has expired: Unmaintained textproc/p5-Text-SpellChecker-GUI||2018-07-16|Has expired: Unmaintained deskutils/p5-ZConf-Runner-GUI-GTK||2018-07-16|Has expired: Unmaintained deskutils/p5-ZConf-BGSet||2018-07-16|Has expired: Unmaintained deskutils/p5-ZConf-Runner||2018-07-16|Has expired: Unmaintained graphics/p5-Image-Size-FillFullSelect||2018-07-16|Has expired: Unmaintained graphics/p5-Imager-AverageGray||2018-07-16|Has expired: Unmaintained mail/p5-Mail-IMAPTalk-MailCache||2018-07-16|Has expired: Unmaintained mail/p5-ZConf-Mail||2018-07-16|Has expired: Unmaintained mail/p5-Mail-Cache||2018-07-16|Has expired: Unmaintained www/p5-ZConf-RSS||2018-07-16|Has expired: Unmaintained www/p5-ZConf-RSS-GUI-GTK||2018-07-16|Has expired: Unmaintained devel/p5-ZConf-GUI||2018-07-16|Has expired: Unmaintained net-im/mastodon||2018-07-16|Has expired: Breaks too frequently x11-fm/p5-PerlFM||2018-07-16|Has expired: Unmaintained astro/p5-ZConf-Weather||2018-07-16|Has expired: Unmaintained sysutils/p5-ZConf-Cron||2018-07-16|Has expired: Unmaintained x11-fonts/hasklig|x11-fonts/Hasklig|2018-07-16|Name correctly after upstream misc/artikulate-kde4||2018-07-17|Has expired: broken for more than three years vietnamese/kde4-l10||2018-07-17|Has expired: broken for more than three years graphics/projectm-libvisual|graphics/libprojectm|2018-07-17|Code of projectm-libvisual was merged into graphics/libprojectm graphics/yafray|graphics/yafaray|2018-07-20|Project renamed lang/spec.alpha||2018-07-21|Unused in the ports tree +sysutils/xen-tools|sysutils/xen-tools47|2018-07-23|Renamed to support multiple versions +emulators/xen-kernel|emulators/xen-kernel47|2018-07-23|Renamed to support multiple versions +emulators/xen||2018-07-23|Removed to support multiple versions Index: head/emulators/xen-kernel/pkg-descr =================================================================== --- head/emulators/xen-kernel/pkg-descr (revision 475253) +++ head/emulators/xen-kernel/pkg-descr (nonexistent) @@ -1,10 +0,0 @@ -The Xen Project hypervisor is an open-source type-1 or baremetal hypervisor, -which makes it possible to run many instances of an operating system or indeed -different operating systems in parallel on a single machine (or host). The Xen -Project hypervisor is the only type-1 hypervisor that is available as open -source. It is used as the basis for a number of different commercial and open -source applications, such as: server virtualization, Infrastructure as a Service -(IaaS), desktop virtualization, security applications, embedded and hardware -appliances - -WWW: http://www.xenproject.org/ Property changes on: head/emulators/xen-kernel/pkg-descr ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/pkg-message =================================================================== --- head/emulators/xen-kernel/pkg-message (revision 475253) +++ head/emulators/xen-kernel/pkg-message (nonexistent) @@ -1,18 +0,0 @@ -Please add the following entries in order to boot the xen kernel - -In /etc/sysctl.conf: - vm.max_wired=-1 - -In /etc/ttys: - xc0 "/usr/libexec/getty Pc" xterm on secure - -In /boot/loader.conf for a dom0 with 2G memory and 4 vcpus: - hw.pci.mcfg=0 - xen_kernel="/boot/xen" - xen_cmdline="dom0_mem=2048M dom0_max_vcpus=4 dom0pvh=1 com1=115200,8n1 guest_loglvl=all loglvl=all" - -Add to the above xen_cmdline in order to activate the serial console: - console=com1 - -In /boot/menu.rc.local: - try-include /boot/xen.4th Property changes on: head/emulators/xen-kernel/pkg-message ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/distinfo =================================================================== --- head/emulators/xen-kernel/distinfo (revision 475253) +++ head/emulators/xen-kernel/distinfo (nonexistent) @@ -1,3 +0,0 @@ -TIMESTAMP = 1489059095 -SHA256 (xen-4.7.2.tar.gz) = 61494a56d9251e2108080f95b0dc8e3d175f1ba4da34603fc07b91cfebf358d5 -SIZE (xen-4.7.2.tar.gz) = 20714281 Property changes on: head/emulators/xen-kernel/distinfo ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/Makefile =================================================================== --- head/emulators/xen-kernel/Makefile (revision 475253) +++ head/emulators/xen-kernel/Makefile (nonexistent) @@ -1,124 +0,0 @@ -# $FreeBSD$ - -PORTNAME= xen -PORTVERSION= 4.7.2 -PORTREVISION= 9 -CATEGORIES= emulators -MASTER_SITES= http://downloads.xenproject.org/release/xen/${PORTVERSION}/ -PKGNAMESUFFIX= -kernel - -MAINTAINER= royger@FreeBSD.org -COMMENT= Hypervisor using a microkernel design - -LICENSE= GPLv2 - -ONLY_FOR_ARCHS= amd64 - -USES= cpe gmake python:2.7,build - -# We need to use ld from ports because the version in base doesn't -# support the '--build-id' switch that's needed for live hypervisor -# hot-patching. Once the ld version in base supports this option the -# dependency can be removed. -# -# GNU objcopy is used instead of elftc objcopy because of bug #533: -# https://sourceforge.net/p/elftoolchain/tickets/533/ -# Once this is solved we should be able to switch to elfcopy. -# -# And finally we also need to use nm from binutils because the one -# from base cannot deal with i386pep binary files which is the format -# of the Xen EFI image (note that FreeBSD cannot yet boot as Dom0 from EFI, -# but the image is built anyway). This is reported to elftc as bug #534: -# https://sourceforge.net/p/elftoolchain/tickets/534/ -MAKE_ARGS= clang=y PYTHON=${PYTHON_CMD} LD="${LD}" OBJCOPY="${OBJCOPY}" \ - NM="${NM}" -USE_BINUTILS= yes -NO_MTREE= yes -STRIP= # -PLIST_FILES= /boot/xen \ - /boot/xen.4th -EXTRA_PATCHES= ${FILESDIR}/0001-xen-logdirty-prevent-preemption-if-finished.patch:-p1 \ - ${FILESDIR}/0002-xen-rework-paging_log_dirty_op-to-work-with-hvm-gues.patch:-p1 \ - ${FILESDIR}/kconf_arch.patch:-p1 \ - ${FILESDIR}/0001-x86-drop-unneeded-__packed-attributes.patch:-p1 \ - ${FILESDIR}/0002-build-clang-fix-XSM-dummy-policy-when-using-clang-4..patch:-p1 \ - ${FILESDIR}/xsa212.patch:-p1 \ - ${FILESDIR}/xsa213-4.7.patch:-p1 \ - ${FILESDIR}/xsa214.patch:-p1 \ - ${FILESDIR}/xsa215.patch:-p1 \ - ${FILESDIR}/xsa217.patch:-p1 \ - ${FILESDIR}/0001-IOMMU-handle-IOMMU-mapping-and-unmapping-failures.patch:-p1 \ - ${FILESDIR}/0002-gnttab-fix-unmap-pin-accounting-race.patch:-p1 \ - ${FILESDIR}/0003-gnttab-Avoid-potential-double-put-of-maptrack-entry.patch:-p1 \ - ${FILESDIR}/0004-gnttab-correct-maptrack-table-accesses.patch:-p1 \ - ${FILESDIR}/xsa219-4.8.patch:-p1 \ - ${FILESDIR}/xsa220-4.7.patch:-p1 \ - ${FILESDIR}/xsa221.patch:-p1 \ - ${FILESDIR}/xsa222-1-4.7.patch:-p1 \ - ${FILESDIR}/xsa222-2-4.7.patch:-p1 \ - ${FILESDIR}/0001-gnttab-Fix-handling-of-dev_bus_addr-during-unmap.patch:-p1 \ - ${FILESDIR}/0002-gnttab-never-create-host-mapping-unless-asked-to.patch:-p1 \ - ${FILESDIR}/0003-gnttab-correct-logic-to-get-page-references-during-m.patch:-p1 \ - ${FILESDIR}/0004-gnttab-__gnttab_unmap_common_complete-is-all-or-noth.patch:-p1 \ - ${FILESDIR}/xsa226-4.7.patch:-p1 \ - ${FILESDIR}/xsa227.patch:-p1 \ - ${FILESDIR}/xsa228-4.8.patch:-p1 \ - ${FILESDIR}/xsa230.patch:-p1 \ - ${FILESDIR}/xsa231-4.7.patch:-p1 \ - ${FILESDIR}/xsa232.patch:-p1 \ - ${FILESDIR}/xsa233.patch:-p1 \ - ${FILESDIR}/xsa234-4.8.patch:-p1 \ - ${FILESDIR}/0001-x86-dont-allow-MSI-pIRQ-mapping-on-unowned-device.patch:-p1 \ - ${FILESDIR}/0002-x86-enforce-proper-privilege-when-mapping-pIRQ-s.patch:-p1 \ - ${FILESDIR}/0003-x86-MSI-disallow-redundant-enabling.patch:-p1 \ - ${FILESDIR}/0004-x86-IRQ-conditionally-preserve-irq-pirq-mapping-on-error.patch:-p1 \ - ${FILESDIR}/0005-x86-FLASK-fix-unmap-domain-IRQ-XSM-hook.patch:-p1 \ - ${FILESDIR}/xsa238.patch:-p1 \ - ${FILESDIR}/xsa239.patch:-p1 \ - ${FILESDIR}/0001-x86-limit-linear-page-table-use-to-a-single-level.patch:-p1 \ - ${FILESDIR}/0002-x86-mm-Disable-PV-linear-pagetables-by-default.patch:-p1 \ - ${FILESDIR}/xsa241-4.8.patch:-p1 \ - ${FILESDIR}/xsa242-4.9.patch:-p1 \ - ${FILESDIR}/xsa243-4.7.patch:-p1 \ - ${FILESDIR}/xsa244-4.7.patch:-p1 \ - ${FILESDIR}/xsa236-4.9.patch:-p1 \ - ${FILESDIR}/0001-x86-compat-fix-compilation-errors-with-clang-6.patch:-p1 \ - ${FILESDIR}/xsa246-4.7.patch:-p1 \ - ${FILESDIR}/0001-p2m-Always-check-to-see-if-removing-a-p2m-entry-actu.patch:-p1 \ - ${FILESDIR}/0002-p2m-Check-return-value-of-p2m_set_entry-when-decreas.patch:-p1 \ - ${FILESDIR}/xsa248-4.8.patch:-p1 \ - ${FILESDIR}/xsa249.patch:-p1 \ - ${FILESDIR}/xsa250.patch:-p1 \ - ${FILESDIR}/xsa251-4.8.patch:-p1 \ - ${FILESDIR}/0001-x86-entry-Remove-support-for-partial-cpu_user_regs-f.patch:-p1 \ - ${FILESDIR}/0001-x86-mm-Always-set-_PAGE_ACCESSED-on-L4e-updates.patch:-p1 \ - ${FILESDIR}/0001-x86-Meltdown-band-aid-against-malicious-64-bit-PV-gu.patch:-p1 \ - ${FILESDIR}/0002-x86-allow-Meltdown-band-aid-to-be-disabled.patch:-p1 - -.include - -.if ${OPSYS} != FreeBSD -IGNORE= only supported on FreeBSD -.endif - -.if ${OSVERSION} < 1100055 -IGNORE= only supported on recent FreeBSD 11 -.endif - -pre-build: - ${MAKE_CMD} -C ${WRKSRC}/xen defconfig ${MAKE_ARGS} - # Enable hypervisor hot-patching. - echo 'CONFIG_XSPLICE=y' >> ${WRKSRC}/xen/.config - echo 'CONFIG_FAST_SYMBOL_LOOKUP=y' >> ${WRKSRC}/xen/.config - -# The ports native 'build' target cannot be used because it sets -# CFLAGS, and that breaks the Xen build system. -do-build: - ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${WRKSRC}/xen build ${MAKE_ARGS} - -do-install: - ${MKDIR} ${STAGEDIR}/boot - ${INSTALL_PROGRAM} ${WRKSRC}/xen/xen ${STAGEDIR}/boot - ${INSTALL_DATA} ${FILESDIR}/xen.4th ${STAGEDIR}/boot - -.include Property changes on: head/emulators/xen-kernel/Makefile ___________________________________________________________________ Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/0001-IOMMU-handle-IOMMU-mapping-and-unmapping-failures.patch =================================================================== --- head/emulators/xen-kernel/files/0001-IOMMU-handle-IOMMU-mapping-and-unmapping-failures.patch (revision 475253) +++ head/emulators/xen-kernel/files/0001-IOMMU-handle-IOMMU-mapping-and-unmapping-failures.patch (nonexistent) @@ -1,78 +0,0 @@ -From 03f872b98f24e25cafb478b5d7c34e1eb18e1e4c Mon Sep 17 00:00:00 2001 -From: Quan Xu -Date: Fri, 2 Jun 2017 12:30:34 +0100 -Subject: [PATCH 1/4] IOMMU: handle IOMMU mapping and unmapping failures - -Treat IOMMU mapping and unmapping failures as a fatal to the DomU -If IOMMU mapping and unmapping failed, crash the DomU and propagate -the error up to the call trees. - -No spamming of the log can occur. For DomU, we avoid logging any -message for already dying domains. For Dom0, that'll still be more -verbose than we'd really like, but it at least wouldn't outright -flood the console. - -Signed-off-by: Quan Xu -Reviewed-by: Kevin Tian -Reviewed-by: Jan Beulich ---- - xen/drivers/passthrough/iommu.c | 30 ++++++++++++++++++++++++++++-- - 1 file changed, 28 insertions(+), 2 deletions(-) - -diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c -index 1a315ee..927966f 100644 ---- a/xen/drivers/passthrough/iommu.c -+++ b/xen/drivers/passthrough/iommu.c -@@ -239,21 +239,47 @@ int iommu_map_page(struct domain *d, unsigned long gfn, unsigned long mfn, - unsigned int flags) - { - const struct domain_iommu *hd = dom_iommu(d); -+ int rc; - - if ( !iommu_enabled || !hd->platform_ops ) - return 0; - -- return hd->platform_ops->map_page(d, gfn, mfn, flags); -+ rc = hd->platform_ops->map_page(d, gfn, mfn, flags); -+ if ( unlikely(rc) ) -+ { -+ if ( !d->is_shutting_down && printk_ratelimit() ) -+ printk(XENLOG_ERR -+ "d%d: IOMMU mapping gfn %#lx to mfn %#lx failed: %d\n", -+ d->domain_id, gfn, mfn, rc); -+ -+ if ( !is_hardware_domain(d) ) -+ domain_crash(d); -+ } -+ -+ return rc; - } - - int iommu_unmap_page(struct domain *d, unsigned long gfn) - { - const struct domain_iommu *hd = dom_iommu(d); -+ int rc; - - if ( !iommu_enabled || !hd->platform_ops ) - return 0; - -- return hd->platform_ops->unmap_page(d, gfn); -+ rc = hd->platform_ops->unmap_page(d, gfn); -+ if ( unlikely(rc) ) -+ { -+ if ( !d->is_shutting_down && printk_ratelimit() ) -+ printk(XENLOG_ERR -+ "d%d: IOMMU unmapping gfn %#lx failed: %d\n", -+ d->domain_id, gfn, rc); -+ -+ if ( !is_hardware_domain(d) ) -+ domain_crash(d); -+ } -+ -+ return rc; - } - - static void iommu_free_pagetables(unsigned long unused) --- -2.1.4 - Property changes on: head/emulators/xen-kernel/files/0001-IOMMU-handle-IOMMU-mapping-and-unmapping-failures.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa215.patch =================================================================== --- head/emulators/xen-kernel/files/xsa215.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa215.patch (nonexistent) @@ -1,37 +0,0 @@ -From: Jan Beulich -Subject: x86: correct create_bounce_frame - -We may push up to 96 bytes on the guest (kernel) stack, so we should -also cover as much in the early range check. Note that this is the -simplest possible patch, which has the theoretical potential of -breaking a guest: We only really push 96 bytes when invoking the -failsafe callback, ordinary exceptions only have 56 or 64 bytes pushed -(without / with error code respectively). There is, however, no PV OS -known to place a kernel stack there. - -This is XSA-215. - -Reported-by: Jann Horn -Signed-off-by: Jan Beulich -Reviewed-by: Andrew Cooper - ---- a/xen/arch/x86/x86_64/entry.S -+++ b/xen/arch/x86/x86_64/entry.S -@@ -347,7 +347,7 @@ int80_slow_path: - jmp handle_exception_saved - - /* CREATE A BASIC EXCEPTION FRAME ON GUEST OS STACK: */ --/* { RCX, R11, [DS-GS,] [CR2,] [ERRCODE,] RIP, CS, RFLAGS, RSP, SS } */ -+/* { RCX, R11, [DS-GS,] [ERRCODE,] RIP, CS, RFLAGS, RSP, SS } */ - /* %rdx: trap_bounce, %rbx: struct vcpu */ - /* On return only %rbx and %rdx are guaranteed non-clobbered. */ - create_bounce_frame: -@@ -367,7 +367,7 @@ create_bounce_frame: - 2: andq $~0xf,%rsi # Stack frames are 16-byte aligned. - movq $HYPERVISOR_VIRT_START,%rax - cmpq %rax,%rsi -- movq $HYPERVISOR_VIRT_END+60,%rax -+ movq $HYPERVISOR_VIRT_END+12*8,%rax - sbb %ecx,%ecx # In +ve address space? Then okay. - cmpq %rax,%rsi - adc %ecx,%ecx # Above Xen private area? Then okay. Property changes on: head/emulators/xen-kernel/files/xsa215.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa214.patch =================================================================== --- head/emulators/xen-kernel/files/xsa214.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa214.patch (nonexistent) @@ -1,41 +0,0 @@ -From: Jan Beulich -Subject: x86: discard type information when stealing pages - -While a page having just a single general reference left necessarily -has a zero type reference count too, its type may still be valid (and -in validated state; at present this is only possible and relevant for -PGT_seg_desc_page, as page tables have their type forcibly zapped when -their type reference count drops to zero, and -PGT_{writable,shared}_page pages don't require any validation). In -such a case when the page is being re-used with the same type again, -validation is being skipped. As validation criteria differ between -32- and 64-bit guests, pages to be transferred between guests need to -have their validation indicator zapped (and with it we zap all other -type information at once). - -This is XSA-214. - -Reported-by: Jann Horn -Signed-off-by: Jan Beulich -Reviewed-by: Andrew Cooper - ---- a/xen/arch/x86/mm.c -+++ b/xen/arch/x86/mm.c -@@ -4466,6 +4466,17 @@ int steal_page( - y = cmpxchg(&page->count_info, x, x & ~PGC_count_mask); - } while ( y != x ); - -+ /* -+ * With the sole reference dropped temporarily, no-one can update type -+ * information. Type count also needs to be zero in this case, but e.g. -+ * PGT_seg_desc_page may still have PGT_validated set, which we need to -+ * clear before transferring ownership (as validation criteria vary -+ * depending on domain type). -+ */ -+ BUG_ON(page->u.inuse.type_info & (PGT_count_mask | PGT_locked | -+ PGT_pinned)); -+ page->u.inuse.type_info = 0; -+ - /* Swizzle the owner then reinstate the PGC_allocated reference. */ - page_set_owner(page, NULL); - y = page->count_info; Property changes on: head/emulators/xen-kernel/files/xsa214.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa212.patch =================================================================== --- head/emulators/xen-kernel/files/xsa212.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa212.patch (nonexistent) @@ -1,87 +0,0 @@ -memory: properly check guest memory ranges in XENMEM_exchange handling - -The use of guest_handle_okay() here (as introduced by the XSA-29 fix) -is insufficient here, guest_handle_subrange_okay() needs to be used -instead. - -Note that the uses are okay in -- XENMEM_add_to_physmap_batch handling due to the size field being only - 16 bits wide, -- livepatch_list() due to the limit of 1024 enforced on the - number-of-entries input (leaving aside the fact that this can be - called by a privileged domain only anyway), -- compat mode handling due to counts there being limited to 32 bits, -- everywhere else due to guest arrays being accessed sequentially from - index zero. - -This is XSA-212. - -Reported-by: Jann Horn -Signed-off-by: Jan Beulich -Reviewed-by: Andrew Cooper - ---- a/xen/common/memory.c -+++ b/xen/common/memory.c -@@ -436,8 +436,8 @@ static long memory_exchange(XEN_GUEST_HA - goto fail_early; - } - -- if ( !guest_handle_okay(exch.in.extent_start, exch.in.nr_extents) || -- !guest_handle_okay(exch.out.extent_start, exch.out.nr_extents) ) -+ if ( !guest_handle_subrange_okay(exch.in.extent_start, exch.nr_exchanged, -+ exch.in.nr_extents - 1) ) - { - rc = -EFAULT; - goto fail_early; -@@ -447,11 +447,27 @@ static long memory_exchange(XEN_GUEST_HA - { - in_chunk_order = exch.out.extent_order - exch.in.extent_order; - out_chunk_order = 0; -+ -+ if ( !guest_handle_subrange_okay(exch.out.extent_start, -+ exch.nr_exchanged >> in_chunk_order, -+ exch.out.nr_extents - 1) ) -+ { -+ rc = -EFAULT; -+ goto fail_early; -+ } - } - else - { - in_chunk_order = 0; - out_chunk_order = exch.in.extent_order - exch.out.extent_order; -+ -+ if ( !guest_handle_subrange_okay(exch.out.extent_start, -+ exch.nr_exchanged << out_chunk_order, -+ exch.out.nr_extents - 1) ) -+ { -+ rc = -EFAULT; -+ goto fail_early; -+ } - } - - d = rcu_lock_domain_by_any_id(exch.in.domid); ---- a/xen/include/asm-x86/x86_64/uaccess.h -+++ b/xen/include/asm-x86/x86_64/uaccess.h -@@ -29,8 +29,9 @@ extern void *xlat_malloc(unsigned long * - /* - * Valid if in +ve half of 48-bit address space, or above Xen-reserved area. - * This is also valid for range checks (addr, addr+size). As long as the -- * start address is outside the Xen-reserved area then we will access a -- * non-canonical address (and thus fault) before ever reaching VIRT_START. -+ * start address is outside the Xen-reserved area, sequential accesses -+ * (starting at addr) will hit a non-canonical address (and thus fault) -+ * before ever reaching VIRT_START. - */ - #define __addr_ok(addr) \ - (((unsigned long)(addr) < (1UL<<47)) || \ -@@ -40,7 +41,8 @@ extern void *xlat_malloc(unsigned long * - (__addr_ok(addr) || is_compat_arg_xlat_range(addr, size)) - - #define array_access_ok(addr, count, size) \ -- (access_ok(addr, (count)*(size))) -+ (likely(((count) ?: 0UL) < (~0UL / (size))) && \ -+ access_ok(addr, (count) * (size))) - - #define __compat_addr_ok(d, addr) \ - ((unsigned long)(addr) < HYPERVISOR_COMPAT_VIRT_START(d)) Property changes on: head/emulators/xen-kernel/files/xsa212.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa217.patch =================================================================== --- head/emulators/xen-kernel/files/xsa217.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa217.patch (nonexistent) @@ -1,41 +0,0 @@ -From: Jan Beulich -Subject: x86/mm: disallow page stealing from HVM domains - -The operation's success can't be controlled by the guest, as the device -model may have an active mapping of the page. If we nevertheless -permitted this operation, we'd have to add further TLB flushing to -prevent scenarios like - -"Domains A (HVM), B (PV), C (PV); B->target==A - Steps: - 1. B maps page X from A as writable - 2. B unmaps page X without a TLB flush - 3. A sends page X to C via GNTTABOP_transfer - 4. C maps page X as pagetable (potentially causing a TLB flush in C, - but not in B) - - At this point, X would be mapped as a pagetable in C while being - writable through a stale TLB entry in B." - -A similar scenario could be constructed for A using XENMEM_exchange and -some arbitrary PV domain C then having this page allocated. - -This is XSA-217. - -Reported-by: Jann Horn -Signed-off-by: Jan Beulich -Acked-by: George Dunlap -Reviewed-by: Konrad Rzeszutek Wilk - ---- a/xen/arch/x86/mm.c -+++ b/xen/arch/x86/mm.c -@@ -4449,6 +4449,9 @@ int steal_page( - bool_t drop_dom_ref = 0; - const struct domain *owner = dom_xen; - -+ if ( paging_mode_external(d) ) -+ return -1; -+ - spin_lock(&d->page_alloc_lock); - - if ( is_xen_heap_page(page) || ((owner = page_get_owner(page)) != d) ) Property changes on: head/emulators/xen-kernel/files/xsa217.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa221.patch =================================================================== --- head/emulators/xen-kernel/files/xsa221.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa221.patch (nonexistent) @@ -1,194 +0,0 @@ -From: Jan Beulich -Subject: evtchn: avoid NULL derefs - -Commit fbbd5009e6 ("evtchn: refactor low-level event channel port ops") -added a de-reference of the struct evtchn pointer for a port without -first making sure the bucket pointer is non-NULL. This de-reference is -actually entirely unnecessary, as all relevant callers (beyond the -problematic do_poll()) already hold the port number in their hands, and -the actual leaf functions need nothing else. - -For FIFO event channels there's a second problem in that the ordering -of reads and updates to ->num_evtchns and ->event_array[] was so far -undefined (the read side isn't always holding the domain's event lock). -Add respective barriers. - -This is XSA-221. - -Reported-by: Ankur Arora -Signed-off-by: Jan Beulich - ---- a/xen/arch/x86/irq.c -+++ b/xen/arch/x86/irq.c -@@ -1486,7 +1486,7 @@ int pirq_guest_unmask(struct domain *d) - { - pirq = pirqs[i]->pirq; - if ( pirqs[i]->masked && -- !evtchn_port_is_masked(d, evtchn_from_port(d, pirqs[i]->evtchn)) ) -+ !evtchn_port_is_masked(d, pirqs[i]->evtchn) ) - pirq_guest_eoi(pirqs[i]); - } - } while ( ++pirq < d->nr_pirqs && n == ARRAY_SIZE(pirqs) ); -@@ -2244,7 +2244,6 @@ static void dump_irqs(unsigned char key) - int i, irq, pirq; - struct irq_desc *desc; - irq_guest_action_t *action; -- struct evtchn *evtchn; - struct domain *d; - const struct pirq *info; - unsigned long flags; -@@ -2287,11 +2286,10 @@ static void dump_irqs(unsigned char key) - d = action->guest[i]; - pirq = domain_irq_to_pirq(d, irq); - info = pirq_info(d, pirq); -- evtchn = evtchn_from_port(d, info->evtchn); - printk("%u:%3d(%c%c%c)", - d->domain_id, pirq, -- (evtchn_port_is_pending(d, evtchn) ? 'P' : '-'), -- (evtchn_port_is_masked(d, evtchn) ? 'M' : '-'), -+ evtchn_port_is_pending(d, info->evtchn) ? 'P' : '-', -+ evtchn_port_is_masked(d, info->evtchn) ? 'M' : '-', - (info->masked ? 'M' : '-')); - if ( i != action->nr_guests ) - printk(","); ---- a/xen/common/event_2l.c -+++ b/xen/common/event_2l.c -@@ -61,16 +61,20 @@ static void evtchn_2l_unmask(struct doma - } - } - --static bool_t evtchn_2l_is_pending(struct domain *d, -- const struct evtchn *evtchn) -+static bool_t evtchn_2l_is_pending(struct domain *d, evtchn_port_t port) - { -- return test_bit(evtchn->port, &shared_info(d, evtchn_pending)); -+ unsigned int max_ports = BITS_PER_EVTCHN_WORD(d) * BITS_PER_EVTCHN_WORD(d); -+ -+ ASSERT(port < max_ports); -+ return port < max_ports && test_bit(port, &shared_info(d, evtchn_pending)); - } - --static bool_t evtchn_2l_is_masked(struct domain *d, -- const struct evtchn *evtchn) -+static bool_t evtchn_2l_is_masked(struct domain *d, evtchn_port_t port) - { -- return test_bit(evtchn->port, &shared_info(d, evtchn_mask)); -+ unsigned int max_ports = BITS_PER_EVTCHN_WORD(d) * BITS_PER_EVTCHN_WORD(d); -+ -+ ASSERT(port < max_ports); -+ return port >= max_ports || test_bit(port, &shared_info(d, evtchn_mask)); - } - - static void evtchn_2l_print_state(struct domain *d, ---- a/xen/common/event_channel.c -+++ b/xen/common/event_channel.c -@@ -1380,8 +1380,8 @@ static void domain_dump_evtchn_info(stru - - printk(" %4u [%d/%d/", - port, -- !!evtchn_port_is_pending(d, chn), -- !!evtchn_port_is_masked(d, chn)); -+ evtchn_port_is_pending(d, port), -+ evtchn_port_is_masked(d, port)); - evtchn_port_print_state(d, chn); - printk("]: s=%d n=%d x=%d", - chn->state, chn->notify_vcpu_id, chn->xen_consumer); ---- a/xen/common/event_fifo.c -+++ b/xen/common/event_fifo.c -@@ -27,6 +27,12 @@ static inline event_word_t *evtchn_fifo_ - if ( unlikely(port >= d->evtchn_fifo->num_evtchns) ) - return NULL; - -+ /* -+ * Callers aren't required to hold d->event_lock, so we need to synchronize -+ * with add_page_to_event_array(). -+ */ -+ smp_rmb(); -+ - p = port / EVTCHN_FIFO_EVENT_WORDS_PER_PAGE; - w = port % EVTCHN_FIFO_EVENT_WORDS_PER_PAGE; - -@@ -287,24 +293,22 @@ static void evtchn_fifo_unmask(struct do - evtchn_fifo_set_pending(v, evtchn); - } - --static bool_t evtchn_fifo_is_pending(struct domain *d, -- const struct evtchn *evtchn) -+static bool_t evtchn_fifo_is_pending(struct domain *d, evtchn_port_t port) - { - event_word_t *word; - -- word = evtchn_fifo_word_from_port(d, evtchn->port); -+ word = evtchn_fifo_word_from_port(d, port); - if ( unlikely(!word) ) - return 0; - - return test_bit(EVTCHN_FIFO_PENDING, word); - } - --static bool_t evtchn_fifo_is_masked(struct domain *d, -- const struct evtchn *evtchn) -+static bool_t evtchn_fifo_is_masked(struct domain *d, evtchn_port_t port) - { - event_word_t *word; - -- word = evtchn_fifo_word_from_port(d, evtchn->port); -+ word = evtchn_fifo_word_from_port(d, port); - if ( unlikely(!word) ) - return 1; - -@@ -593,6 +597,10 @@ static int add_page_to_event_array(struc - return rc; - - d->evtchn_fifo->event_array[slot] = virt; -+ -+ /* Synchronize with evtchn_fifo_word_from_port(). */ -+ smp_wmb(); -+ - d->evtchn_fifo->num_evtchns += EVTCHN_FIFO_EVENT_WORDS_PER_PAGE; - - /* ---- a/xen/common/schedule.c -+++ b/xen/common/schedule.c -@@ -965,7 +965,7 @@ static long do_poll(struct sched_poll *s - goto out; - - rc = 0; -- if ( evtchn_port_is_pending(d, evtchn_from_port(d, port)) ) -+ if ( evtchn_port_is_pending(d, port) ) - goto out; - } - ---- a/xen/include/xen/event.h -+++ b/xen/include/xen/event.h -@@ -137,8 +137,8 @@ struct evtchn_port_ops { - void (*set_pending)(struct vcpu *v, struct evtchn *evtchn); - void (*clear_pending)(struct domain *d, struct evtchn *evtchn); - void (*unmask)(struct domain *d, struct evtchn *evtchn); -- bool_t (*is_pending)(struct domain *d, const struct evtchn *evtchn); -- bool_t (*is_masked)(struct domain *d, const struct evtchn *evtchn); -+ bool_t (*is_pending)(struct domain *d, evtchn_port_t port); -+ bool_t (*is_masked)(struct domain *d, evtchn_port_t port); - /* - * Is the port unavailable because it's still being cleaned up - * after being closed? -@@ -175,15 +175,15 @@ static inline void evtchn_port_unmask(st - } - - static inline bool_t evtchn_port_is_pending(struct domain *d, -- const struct evtchn *evtchn) -+ evtchn_port_t port) - { -- return d->evtchn_port_ops->is_pending(d, evtchn); -+ return d->evtchn_port_ops->is_pending(d, port); - } - - static inline bool_t evtchn_port_is_masked(struct domain *d, -- const struct evtchn *evtchn) -+ evtchn_port_t port) - { -- return d->evtchn_port_ops->is_masked(d, evtchn); -+ return d->evtchn_port_ops->is_masked(d, port); - } - - static inline bool_t evtchn_port_is_busy(struct domain *d, evtchn_port_t port) Property changes on: head/emulators/xen-kernel/files/xsa221.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa227.patch =================================================================== --- head/emulators/xen-kernel/files/xsa227.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa227.patch (nonexistent) @@ -1,52 +0,0 @@ -From fa7268b94f8a0a7792ee12d5b8e23a60e52a3a84 Mon Sep 17 00:00:00 2001 -From: Andrew Cooper -Date: Tue, 20 Jun 2017 19:18:54 +0100 -Subject: [PATCH] x86/grant: Disallow misaligned PTEs - -Pagetable entries must be aligned to function correctly. Disallow attempts -from the guest to have a grant PTE created at a misaligned address, which -would result in corruption of the L1 table with largely-guest-controlled -values. - -This is XSA-227 - -Signed-off-by: Andrew Cooper -Reviewed-by: Jan Beulich ---- - xen/arch/x86/mm.c | 13 +++++++++++++ - 1 file changed, 13 insertions(+) - -diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c -index 97b3b4b..00f517a 100644 ---- a/xen/arch/x86/mm.c -+++ b/xen/arch/x86/mm.c -@@ -3763,6 +3763,9 @@ static int create_grant_pte_mapping( - l1_pgentry_t ol1e; - struct domain *d = v->domain; - -+ if ( !IS_ALIGNED(pte_addr, sizeof(nl1e)) ) -+ return GNTST_general_error; -+ - adjust_guest_l1e(nl1e, d); - - gmfn = pte_addr >> PAGE_SHIFT; -@@ -3819,6 +3822,16 @@ static int destroy_grant_pte_mapping( - struct page_info *page; - l1_pgentry_t ol1e; - -+ /* -+ * addr comes from Xen's active_entry tracking so isn't guest controlled, -+ * but it had still better be PTE-aligned. -+ */ -+ if ( !IS_ALIGNED(addr, sizeof(ol1e)) ) -+ { -+ ASSERT_UNREACHABLE(); -+ return GNTST_general_error; -+ } -+ - gmfn = addr >> PAGE_SHIFT; - page = get_page_from_gfn(d, gmfn, NULL, P2M_ALLOC); - --- -2.1.4 - Property changes on: head/emulators/xen-kernel/files/xsa227.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/kconf_arch.patch =================================================================== --- head/emulators/xen-kernel/files/kconf_arch.patch (revision 475253) +++ head/emulators/xen-kernel/files/kconf_arch.patch (nonexistent) @@ -1,33 +0,0 @@ -diff --git a/xen/Makefile b/xen/Makefile -index 0d5f240..f232d01 100644 ---- a/xen/Makefile -+++ b/xen/Makefile -@@ -21,8 +21,8 @@ MAKEFLAGS += -rR - - EFI_MOUNTPOINT ?= $(BOOT_DIR)/efi - --ARCH=$(XEN_TARGET_ARCH) --SRCARCH=$(shell echo $(ARCH) | sed -e 's/x86.*/x86/' -e s'/arm\(32\|64\)/arm/g') -+KCONF_ARCH=$(XEN_TARGET_ARCH) -+KCONF_SRCARCH=$(shell echo $(KCONF_ARCH) | sed -e 's/x86.*/x86/' -e s'/arm\(32\|64\)/arm/g') - - # Don't break if the build process wasn't called from the top level - # we need XEN_TARGET_ARCH to generate the proper config -@@ -246,14 +246,14 @@ kconfig := silentoldconfig oldconfig config menuconfig defconfig \ - randconfig - .PHONY: $(kconfig) - $(kconfig): -- $(MAKE) -f $(BASEDIR)/tools/kconfig/Makefile.kconfig ARCH=$(ARCH) SRCARCH=$(SRCARCH) HOSTCC="$(HOSTCC)" HOSTCXX="$(HOSTCXX)" $@ -+ $(MAKE) -f $(BASEDIR)/tools/kconfig/Makefile.kconfig ARCH=$(KCONF_ARCH) SRCARCH=$(KCONF_SRCARCH) HOSTCC="$(HOSTCC)" HOSTCXX="$(HOSTCXX)" $@ - - include/config/%.conf: include/config/auto.conf.cmd $(KCONFIG_CONFIG) -- $(MAKE) -f $(BASEDIR)/tools/kconfig/Makefile.kconfig ARCH=$(ARCH) SRCARCH=$(SRCARCH) HOSTCC="$(HOSTCC)" HOSTCXX="$(HOSTCXX)" silentoldconfig -+ $(MAKE) -f $(BASEDIR)/tools/kconfig/Makefile.kconfig ARCH=$(KCONF_ARCH) SRCARCH=$(KCONF_SRCARCH) HOSTCC="$(HOSTCC)" HOSTCXX="$(HOSTCXX)" silentoldconfig - - # Allow people to just run `make` as before and not force them to configure - $(KCONFIG_CONFIG): -- $(MAKE) -f $(BASEDIR)/tools/kconfig/Makefile.kconfig ARCH=$(ARCH) SRCARCH=$(SRCARCH) HOSTCC="$(HOSTCC)" HOSTCXX="$(HOSTCXX)" defconfig -+ $(MAKE) -f $(BASEDIR)/tools/kconfig/Makefile.kconfig ARCH=$(KCONF_ARCH) SRCARCH=$(KCONF_SRCARCH) HOSTCC="$(HOSTCC)" HOSTCXX="$(HOSTCXX)" defconfig - - # Break the dependency chain for the first run - include/config/auto.conf.cmd: ; Property changes on: head/emulators/xen-kernel/files/kconf_arch.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa230.patch =================================================================== --- head/emulators/xen-kernel/files/xsa230.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa230.patch (nonexistent) @@ -1,38 +0,0 @@ -From: Jan Beulich -Subject: gnttab: correct pin status fixup for copy - -Regardless of copy operations only setting GNTPIN_hst*, GNTPIN_dev* -also need to be taken into account when deciding whether to clear -_GTF_{read,writ}ing. At least for consistency with code elsewhere the -read part better doesn't use any mask at all. - -This is XSA-230. - -Signed-off-by: Jan Beulich -Reviewed-by: Andrew Cooper -diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c -index ae34547..9c9d33c 100644 ---- a/xen/common/grant_table.c -+++ b/xen/common/grant_table.c -@@ -2107,10 +2107,10 @@ __release_grant_for_copy( - static void __fixup_status_for_copy_pin(const struct active_grant_entry *act, - uint16_t *status) - { -- if ( !(act->pin & GNTPIN_hstw_mask) ) -+ if ( !(act->pin & (GNTPIN_hstw_mask | GNTPIN_devw_mask)) ) - gnttab_clear_flag(_GTF_writing, status); - -- if ( !(act->pin & GNTPIN_hstr_mask) ) -+ if ( !act->pin ) - gnttab_clear_flag(_GTF_reading, status); - } - -@@ -2318,7 +2318,7 @@ __acquire_grant_for_copy( - - unlock_out_clear: - if ( !(readonly) && -- !(act->pin & GNTPIN_hstw_mask) ) -+ !(act->pin & (GNTPIN_hstw_mask | GNTPIN_devw_mask)) ) - gnttab_clear_flag(_GTF_writing, status); - - if ( !act->pin ) Property changes on: head/emulators/xen-kernel/files/xsa230.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa232.patch =================================================================== --- head/emulators/xen-kernel/files/xsa232.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa232.patch (nonexistent) @@ -1,23 +0,0 @@ -From: Andrew Cooper -Subject: grant_table: fix GNTTABOP_cache_flush handling - -Don't fall over a NULL grant_table pointer when the owner of the domain -is a system domain (DOMID_{XEN,IO} etc). - -This is XSA-232. - -Reported-by: Matthew Daley -Signed-off-by: Andrew Cooper -Reviewed-by: Jan Beulich - ---- a/xen/common/grant_table.c -+++ b/xen/common/grant_table.c -@@ -3053,7 +3053,7 @@ static int cache_flush(gnttab_cache_flus - - page = mfn_to_page(mfn); - owner = page_get_owner_and_reference(page); -- if ( !owner ) -+ if ( !owner || !owner->grant_table ) - { - rcu_unlock_domain(d); - return -EPERM; Property changes on: head/emulators/xen-kernel/files/xsa232.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa233.patch =================================================================== --- head/emulators/xen-kernel/files/xsa233.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa233.patch (nonexistent) @@ -1,52 +0,0 @@ -From: Juergen Gross -Subject: tools/xenstore: dont unlink connection object twice - -A connection object of a domain with associated stubdom has two -parents: the domain and the stubdom. When cleaning up the list of -active domains in domain_cleanup() make sure not to unlink the -connection twice from the same domain. This could happen when the -domain and its stubdom are being destroyed at the same time leading -to the domain loop being entered twice. - -Additionally don't use talloc_free() in this case as it will remove -a random parent link, leading eventually to a memory leak. Use -talloc_unlink() instead specifying the context from which the -connection object should be removed. - -This is XSA-233. - -Reported-by: Eric Chanudet -Signed-off-by: Juergen Gross -Reviewed-by: Ian Jackson - ---- a/tools/xenstore/xenstored_domain.c -+++ b/tools/xenstore/xenstored_domain.c -@@ -221,10 +221,11 @@ static int destroy_domain(void *_domain) - static void domain_cleanup(void) - { - xc_dominfo_t dominfo; -- struct domain *domain, *tmp; -+ struct domain *domain; - int notify = 0; - -- list_for_each_entry_safe(domain, tmp, &domains, list) { -+ again: -+ list_for_each_entry(domain, &domains, list) { - if (xc_domain_getinfo(*xc_handle, domain->domid, 1, - &dominfo) == 1 && - dominfo.domid == domain->domid) { -@@ -236,8 +237,12 @@ static void domain_cleanup(void) - if (!dominfo.dying) - continue; - } -- talloc_free(domain->conn); -- notify = 0; /* destroy_domain() fires the watch */ -+ if (domain->conn) { -+ talloc_unlink(talloc_autofree_context(), domain->conn); -+ domain->conn = NULL; -+ notify = 0; /* destroy_domain() fires the watch */ -+ goto again; -+ } - } - - if (notify) Property changes on: head/emulators/xen-kernel/files/xsa233.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa238.patch =================================================================== --- head/emulators/xen-kernel/files/xsa238.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa238.patch (nonexistent) @@ -1,45 +0,0 @@ -From cdc2887076b19b39fab9faec495082586f3113df Mon Sep 17 00:00:00 2001 -From: XenProject Security Team -Date: Tue, 5 Sep 2017 13:41:37 +0200 -Subject: x86/ioreq server: correctly handle bogus - XEN_DMOP_{,un}map_io_range_to_ioreq_server arguments - -Misbehaving device model can pass incorrect XEN_DMOP_map/ -unmap_io_range_to_ioreq_server arguments, namely end < start when -specifying address range. When this happens we hit ASSERT(s <= e) in -rangeset_contains_range()/rangeset_overlaps_range() with debug builds. -Production builds will not trap right away but may misbehave later -while handling such bogus ranges. - -This is XSA-238. - -Signed-off-by: Vitaly Kuznetsov -Reviewed-by: Jan Beulich ---- - xen/arch/x86/hvm/ioreq.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c -index b2a8b0e986..8c8bf1f0ec 100644 ---- a/xen/arch/x86/hvm/ioreq.c -+++ b/xen/arch/x86/hvm/ioreq.c -@@ -820,6 +820,9 @@ int hvm_map_io_range_to_ioreq_server(struct domain *d, ioservid_t id, - struct hvm_ioreq_server *s; - int rc; - -+ if ( start > end ) -+ return -EINVAL; -+ - spin_lock_recursive(&d->arch.hvm_domain.ioreq_server.lock); - - rc = -ENOENT; -@@ -872,6 +875,9 @@ int hvm_unmap_io_range_from_ioreq_server(struct domain *d, ioservid_t id, - struct hvm_ioreq_server *s; - int rc; - -+ if ( start > end ) -+ return -EINVAL; -+ - spin_lock_recursive(&d->arch.hvm_domain.ioreq_server.lock); - - rc = -ENOENT; Property changes on: head/emulators/xen-kernel/files/xsa238.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa239.patch =================================================================== --- head/emulators/xen-kernel/files/xsa239.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa239.patch (nonexistent) @@ -1,46 +0,0 @@ -From: Jan Beulich -Subject: x86/HVM: prefill partially used variable on emulation paths - -Certain handlers ignore the access size (vioapic_write() being the -example this was found with), perhaps leading to subsequent reads -seeing data that wasn't actually written by the guest. For -consistency and extra safety also do this on the read path of -hvm_process_io_intercept(), even if this doesn't directly affect what -guests get to see, as we've supposedly already dealt with read handlers -leaving data completely unitialized. - -This is XSA-239. - -Reported-by: Roger Pau Monné -Reviewed-by: Roger Pau Monné -Signed-off-by: Jan Beulich - ---- a/xen/arch/x86/hvm/emulate.c -+++ b/xen/arch/x86/hvm/emulate.c -@@ -129,7 +129,7 @@ static int hvmemul_do_io( - .count = *reps, - .dir = dir, - .df = df, -- .data = data, -+ .data = data_is_addr ? data : 0, - .data_is_ptr = data_is_addr, /* ioreq_t field name is misleading */ - .state = STATE_IOREQ_READY, - }; ---- a/xen/arch/x86/hvm/intercept.c -+++ b/xen/arch/x86/hvm/intercept.c -@@ -127,6 +127,7 @@ int hvm_process_io_intercept(const struc - addr = (p->type == IOREQ_TYPE_COPY) ? - p->addr + step * i : - p->addr; -+ data = 0; - rc = ops->read(handler, addr, p->size, &data); - if ( rc != X86EMUL_OKAY ) - break; -@@ -161,6 +162,7 @@ int hvm_process_io_intercept(const struc - { - if ( p->data_is_ptr ) - { -+ data = 0; - switch ( hvm_copy_from_guest_phys(&data, p->data + step * i, - p->size) ) - { Property changes on: head/emulators/xen-kernel/files/xsa239.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/0002-gnttab-fix-unmap-pin-accounting-race.patch =================================================================== --- head/emulators/xen-kernel/files/0002-gnttab-fix-unmap-pin-accounting-race.patch (revision 475253) +++ head/emulators/xen-kernel/files/0002-gnttab-fix-unmap-pin-accounting-race.patch (nonexistent) @@ -1,102 +0,0 @@ -From 2c146b4f763f47180a0effb8d8045b0ebb93652c Mon Sep 17 00:00:00 2001 -From: Jan Beulich -Date: Fri, 2 Jun 2017 12:22:42 +0100 -Subject: [PATCH 2/4] gnttab: fix unmap pin accounting race - -Once all {writable} mappings of a grant entry have been unmapped, the -hypervisor informs the guest that the grant entry has been released by -clearing the _GTF_{reading,writing} usage flags in the guest's grant -table as appropriate. - -Unfortunately, at the moment, the code that updates the accounting -happens in a different critical section than the one which updates the -usage flags; this means that under the right circumstances, there may be -a window in time after the hypervisor reported the grant as being free -during which the grant referee still had access to the page. - -Move the grant accounting code into the same critical section as the -reporting code to make sure this kind of race can't happen. - -This is part of XSA-218. - -Reported-by: Jann Horn -Signed-off-by: Jan Beulich ---- - xen/common/grant_table.c | 32 +++++++++++++++++--------------- - 1 file changed, 17 insertions(+), 15 deletions(-) - -diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c -index 8b22299..cfc483f 100644 ---- a/xen/common/grant_table.c -+++ b/xen/common/grant_table.c -@@ -1150,15 +1150,8 @@ __gnttab_unmap_common( - PIN_FAIL(act_release_out, GNTST_general_error, - "Bad frame number doesn't match gntref. (%lx != %lx)\n", - op->frame, act->frame); -- if ( op->flags & GNTMAP_device_map ) -- { -- ASSERT(act->pin & (GNTPIN_devw_mask | GNTPIN_devr_mask)); -- op->map->flags &= ~GNTMAP_device_map; -- if ( op->flags & GNTMAP_readonly ) -- act->pin -= GNTPIN_devr_inc; -- else -- act->pin -= GNTPIN_devw_inc; -- } -+ -+ op->map->flags &= ~GNTMAP_device_map; - } - - if ( (op->host_addr != 0) && (op->flags & GNTMAP_host_map) ) -@@ -1168,12 +1161,7 @@ __gnttab_unmap_common( - op->flags)) < 0 ) - goto act_release_out; - -- ASSERT(act->pin & (GNTPIN_hstw_mask | GNTPIN_hstr_mask)); - op->map->flags &= ~GNTMAP_host_map; -- if ( op->flags & GNTMAP_readonly ) -- act->pin -= GNTPIN_hstr_inc; -- else -- act->pin -= GNTPIN_hstw_inc; - } - - act_release_out: -@@ -1266,6 +1254,12 @@ __gnttab_unmap_common_complete(struct gnttab_unmap_common *op) - else - put_page_and_type(pg); - } -+ -+ ASSERT(act->pin & (GNTPIN_devw_mask | GNTPIN_devr_mask)); -+ if ( op->flags & GNTMAP_readonly ) -+ act->pin -= GNTPIN_devr_inc; -+ else -+ act->pin -= GNTPIN_devw_inc; - } - - if ( (op->host_addr != 0) && (op->flags & GNTMAP_host_map) ) -@@ -1274,7 +1268,9 @@ __gnttab_unmap_common_complete(struct gnttab_unmap_common *op) - { - /* - * Suggests that __gntab_unmap_common failed in -- * replace_grant_host_mapping() so nothing further to do -+ * replace_grant_host_mapping() or IOMMU handling, so nothing -+ * further to do (short of re-establishing the mapping in the -+ * latter case). - */ - goto act_release_out; - } -@@ -1285,6 +1281,12 @@ __gnttab_unmap_common_complete(struct gnttab_unmap_common *op) - put_page_type(pg); - put_page(pg); - } -+ -+ ASSERT(act->pin & (GNTPIN_hstw_mask | GNTPIN_hstr_mask)); -+ if ( op->flags & GNTMAP_readonly ) -+ act->pin -= GNTPIN_hstr_inc; -+ else -+ act->pin -= GNTPIN_hstw_inc; - } - - if ( (op->map->flags & (GNTMAP_device_map|GNTMAP_host_map)) == 0 ) --- -2.1.4 - Property changes on: head/emulators/xen-kernel/files/0002-gnttab-fix-unmap-pin-accounting-race.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa249.patch =================================================================== --- head/emulators/xen-kernel/files/xsa249.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa249.patch (nonexistent) @@ -1,42 +0,0 @@ -From: Jan Beulich -Subject: x86/shadow: fix refcount overflow check - -Commit c385d27079 ("x86 shadow: for multi-page shadows, explicitly track -the first page") reduced the refcount width to 25, without adjusting the -overflow check. Eliminate the disconnect by using a manifest constant. - -Interestingly, up to commit 047782fa01 ("Out-of-sync L1 shadows: OOS -snapshot") the refcount was 27 bits wide, yet the check was already -using 26. - -This is XSA-249. - -Signed-off-by: Jan Beulich -Reviewed-by: George Dunlap -Reviewed-by: Tim Deegan ---- -v2: Simplify expression back to the style it was. - ---- a/xen/arch/x86/mm/shadow/private.h -+++ b/xen/arch/x86/mm/shadow/private.h -@@ -529,7 +529,7 @@ static inline int sh_get_ref(struct doma - x = sp->u.sh.count; - nx = x + 1; - -- if ( unlikely(nx >= 1U<<26) ) -+ if ( unlikely(nx >= (1U << PAGE_SH_REFCOUNT_WIDTH)) ) - { - SHADOW_PRINTK("shadow ref overflow, gmfn=%lx smfn=%lx\n", - __backpointer(sp), mfn_x(smfn)); ---- a/xen/include/asm-x86/mm.h -+++ b/xen/include/asm-x86/mm.h -@@ -82,7 +82,8 @@ struct page_info - unsigned long type:5; /* What kind of shadow is this? */ - unsigned long pinned:1; /* Is the shadow pinned? */ - unsigned long head:1; /* Is this the first page of the shadow? */ -- unsigned long count:25; /* Reference count */ -+#define PAGE_SH_REFCOUNT_WIDTH 25 -+ unsigned long count:PAGE_SH_REFCOUNT_WIDTH; /* Reference count */ - } sh; - - /* Page is on a free list: ((count_info & PGC_count_mask) == 0). */ Property changes on: head/emulators/xen-kernel/files/xsa249.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa250.patch =================================================================== --- head/emulators/xen-kernel/files/xsa250.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa250.patch (nonexistent) @@ -1,67 +0,0 @@ -From: Jan Beulich -Subject: x86/shadow: fix ref-counting error handling - -The old-Linux handling in shadow_set_l4e() mistakenly ORed together the -results of sh_get_ref() and sh_pin(). As the latter failing is not a -correctness problem, simply ignore its return value. - -In sh_set_toplevel_shadow() a failing sh_get_ref() must not be -accompanied by installing the entry, despite the domain being crashed. - -This is XSA-250. - -Signed-off-by: Jan Beulich -Reviewed-by: Tim Deegan - ---- a/xen/arch/x86/mm/shadow/multi.c -+++ b/xen/arch/x86/mm/shadow/multi.c -@@ -923,7 +923,7 @@ static int shadow_set_l4e(struct domain - shadow_l4e_t new_sl4e, - mfn_t sl4mfn) - { -- int flags = 0, ok; -+ int flags = 0; - shadow_l4e_t old_sl4e; - paddr_t paddr; - ASSERT(sl4e != NULL); -@@ -938,15 +938,16 @@ static int shadow_set_l4e(struct domain - { - /* About to install a new reference */ - mfn_t sl3mfn = shadow_l4e_get_mfn(new_sl4e); -- ok = sh_get_ref(d, sl3mfn, paddr); -- /* Are we pinning l3 shadows to handle wierd linux behaviour? */ -- if ( sh_type_is_pinnable(d, SH_type_l3_64_shadow) ) -- ok |= sh_pin(d, sl3mfn); -- if ( !ok ) -+ -+ if ( !sh_get_ref(d, sl3mfn, paddr) ) - { - domain_crash(d); - return SHADOW_SET_ERROR; - } -+ -+ /* Are we pinning l3 shadows to handle weird Linux behaviour? */ -+ if ( sh_type_is_pinnable(d, SH_type_l3_64_shadow) ) -+ sh_pin(d, sl3mfn); - } - - /* Write the new entry */ -@@ -3965,14 +3966,15 @@ sh_set_toplevel_shadow(struct vcpu *v, - - /* Take a ref to this page: it will be released in sh_detach_old_tables() - * or the next call to set_toplevel_shadow() */ -- if ( !sh_get_ref(d, smfn, 0) ) -+ if ( sh_get_ref(d, smfn, 0) ) -+ new_entry = pagetable_from_mfn(smfn); -+ else - { - SHADOW_ERROR("can't install %#lx as toplevel shadow\n", mfn_x(smfn)); - domain_crash(d); -+ new_entry = pagetable_null(); - } - -- new_entry = pagetable_from_mfn(smfn); -- - install_new_entry: - /* Done. Install it */ - SHADOW_PRINTK("%u/%u [%u] gmfn %#"PRI_mfn" smfn %#"PRI_mfn"\n", Property changes on: head/emulators/xen-kernel/files/xsa250.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa219-4.8.patch =================================================================== --- head/emulators/xen-kernel/files/xsa219-4.8.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa219-4.8.patch (nonexistent) @@ -1,151 +0,0 @@ -From 3986b845e87c3f963227ece86bb633450761ec18 Mon Sep 17 00:00:00 2001 -From: Andrew Cooper -Date: Thu, 11 May 2017 14:47:00 +0100 -Subject: [PATCH] x86/shadow: Hold references for the duration of emulated - writes - -The (misnamed) emulate_gva_to_mfn() function translates a linear address to an -mfn, but releases its page reference before returning the mfn to its caller. - -sh_emulate_map_dest() uses the results of one or two translations to construct -a virtual mapping to the underlying frames, completes an emulated -write/cmpxchg, then unmaps the virtual mappings. - -The page references need holding until the mappings are unmapped, or the -frames can change ownership before the writes occurs. - -This is XSA-219 - -Reported-by: Andrew Cooper -Signed-off-by: Andrew Cooper -Reviewed-by: Jan Beulich -Reviewed-by: Tim Deegan ---- - xen/arch/x86/mm/shadow/common.c | 54 +++++++++++++++++++++++++++-------------- - 1 file changed, 36 insertions(+), 18 deletions(-) - -diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c -index ced2313..13305d2 100644 ---- a/xen/arch/x86/mm/shadow/common.c -+++ b/xen/arch/x86/mm/shadow/common.c -@@ -1703,7 +1703,10 @@ static unsigned int shadow_get_allocation(struct domain *d) - /**************************************************************************/ - /* Handling guest writes to pagetables. */ - --/* Translate a VA to an MFN, injecting a page-fault if we fail. */ -+/* -+ * Translate a VA to an MFN, injecting a page-fault if we fail. If the -+ * mapping succeeds, a reference will be held on the underlying page. -+ */ - #define BAD_GVA_TO_GFN (~0UL) - #define BAD_GFN_TO_MFN (~1UL) - #define READONLY_GFN (~2UL) -@@ -1751,16 +1754,15 @@ static mfn_t emulate_gva_to_mfn(struct vcpu *v, unsigned long vaddr, - ASSERT(mfn_valid(mfn)); - - v->arch.paging.last_write_was_pt = !!sh_mfn_is_a_page_table(mfn); -- /* -- * Note shadow cannot page out or unshare this mfn, so the map won't -- * disappear. Otherwise, caller must hold onto page until done. -- */ -- put_page(page); - - return mfn; - } - --/* Check that the user is allowed to perform this write. */ -+/* -+ * Check that the user is allowed to perform this write. If a mapping is -+ * returned, page references will be held on sh_ctxt->mfn[0] and -+ * sh_ctxt->mfn[1] iff !INVALID_MFN. -+ */ - void *sh_emulate_map_dest(struct vcpu *v, unsigned long vaddr, - unsigned int bytes, - struct sh_emulate_ctxt *sh_ctxt) -@@ -1768,13 +1770,6 @@ void *sh_emulate_map_dest(struct vcpu *v, unsigned long vaddr, - struct domain *d = v->domain; - void *map; - -- sh_ctxt->mfn[0] = emulate_gva_to_mfn(v, vaddr, sh_ctxt); -- if ( !mfn_valid(sh_ctxt->mfn[0]) ) -- return ((mfn_x(sh_ctxt->mfn[0]) == BAD_GVA_TO_GFN) ? -- MAPPING_EXCEPTION : -- (mfn_x(sh_ctxt->mfn[0]) == READONLY_GFN) ? -- MAPPING_SILENT_FAIL : MAPPING_UNHANDLEABLE); -- - #ifndef NDEBUG - /* We don't emulate user-mode writes to page tables. */ - if ( has_hvm_container_domain(d) -@@ -1787,6 +1782,17 @@ void *sh_emulate_map_dest(struct vcpu *v, unsigned long vaddr, - } - #endif - -+ sh_ctxt->mfn[0] = emulate_gva_to_mfn(v, vaddr, sh_ctxt); -+ if ( !mfn_valid(sh_ctxt->mfn[0]) ) -+ { -+ switch ( mfn_x(sh_ctxt->mfn[0]) ) -+ { -+ case BAD_GVA_TO_GFN: return MAPPING_EXCEPTION; -+ case READONLY_GFN: return MAPPING_SILENT_FAIL; -+ default: return MAPPING_UNHANDLEABLE; -+ } -+ } -+ - /* Unaligned writes mean probably this isn't a pagetable. */ - if ( vaddr & (bytes - 1) ) - sh_remove_shadows(d, sh_ctxt->mfn[0], 0, 0 /* Slow, can fail. */ ); -@@ -1803,6 +1809,7 @@ void *sh_emulate_map_dest(struct vcpu *v, unsigned long vaddr, - * Cross-page emulated writes are only supported for HVM guests; - * PV guests ought to know better. - */ -+ put_page(mfn_to_page(sh_ctxt->mfn[0])); - return MAPPING_UNHANDLEABLE; - } - else -@@ -1810,17 +1817,26 @@ void *sh_emulate_map_dest(struct vcpu *v, unsigned long vaddr, - /* This write crosses a page boundary. Translate the second page. */ - sh_ctxt->mfn[1] = emulate_gva_to_mfn(v, vaddr + bytes - 1, sh_ctxt); - if ( !mfn_valid(sh_ctxt->mfn[1]) ) -- return ((mfn_x(sh_ctxt->mfn[1]) == BAD_GVA_TO_GFN) ? -- MAPPING_EXCEPTION : -- (mfn_x(sh_ctxt->mfn[1]) == READONLY_GFN) ? -- MAPPING_SILENT_FAIL : MAPPING_UNHANDLEABLE); -+ { -+ put_page(mfn_to_page(sh_ctxt->mfn[0])); -+ switch ( mfn_x(sh_ctxt->mfn[1]) ) -+ { -+ case BAD_GVA_TO_GFN: return MAPPING_EXCEPTION; -+ case READONLY_GFN: return MAPPING_SILENT_FAIL; -+ default: return MAPPING_UNHANDLEABLE; -+ } -+ } - - /* Cross-page writes mean probably not a pagetable. */ - sh_remove_shadows(d, sh_ctxt->mfn[1], 0, 0 /* Slow, can fail. */ ); - - map = vmap(sh_ctxt->mfn, 2); - if ( !map ) -+ { -+ put_page(mfn_to_page(sh_ctxt->mfn[0])); -+ put_page(mfn_to_page(sh_ctxt->mfn[1])); - return MAPPING_UNHANDLEABLE; -+ } - map += (vaddr & ~PAGE_MASK); - } - -@@ -1890,10 +1906,12 @@ void sh_emulate_unmap_dest(struct vcpu *v, void *addr, unsigned int bytes, - } - - paging_mark_dirty(v->domain, mfn_x(sh_ctxt->mfn[0])); -+ put_page(mfn_to_page(sh_ctxt->mfn[0])); - - if ( unlikely(mfn_valid(sh_ctxt->mfn[1])) ) - { - paging_mark_dirty(v->domain, mfn_x(sh_ctxt->mfn[1])); -+ put_page(mfn_to_page(sh_ctxt->mfn[1])); - vunmap((void *)((unsigned long)addr & PAGE_MASK)); - } - else --- -2.1.4 - Property changes on: head/emulators/xen-kernel/files/xsa219-4.8.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/0003-x86-MSI-disallow-redundant-enabling.patch =================================================================== --- head/emulators/xen-kernel/files/0003-x86-MSI-disallow-redundant-enabling.patch (revision 475253) +++ head/emulators/xen-kernel/files/0003-x86-MSI-disallow-redundant-enabling.patch (nonexistent) @@ -1,55 +0,0 @@ -From: Jan Beulich -Subject: x86/MSI: disallow redundant enabling - -At the moment, Xen attempts to allow redundant enabling of MSI by -having pci_enable_msi() return 0, and point to the existing MSI -descriptor, when the msi already exists. - -Unfortunately, if subsequent errors are encountered, the cleanup -paths assume pci_enable_msi() had done full initialization, and -hence undo everything that was assumed to be done by that -function without also undoing other setup that would normally -occur only after that function was called (in map_domain_pirq() -itself). - -Rather than try to make the redundant enabling case work properly, just -forbid it entirely by having pci_enable_msi() return -EEXIST when MSI -is already set up. - -This is part of XSA-237. - -Reported-by: HW42 -Signed-off-by: Jan Beulich -Reviewed-by: Andrew Cooper -Reviewed-by: George Dunlap - ---- a/xen/arch/x86/msi.c -+++ b/xen/arch/x86/msi.c -@@ -1050,11 +1050,10 @@ static int __pci_enable_msi(struct msi_i - old_desc = find_msi_entry(pdev, msi->irq, PCI_CAP_ID_MSI); - if ( old_desc ) - { -- printk(XENLOG_WARNING "irq %d already mapped to MSI on %04x:%02x:%02x.%u\n", -+ printk(XENLOG_ERR "irq %d already mapped to MSI on %04x:%02x:%02x.%u\n", - msi->irq, msi->seg, msi->bus, - PCI_SLOT(msi->devfn), PCI_FUNC(msi->devfn)); -- *desc = old_desc; -- return 0; -+ return -EEXIST; - } - - old_desc = find_msi_entry(pdev, -1, PCI_CAP_ID_MSIX); -@@ -1118,11 +1117,10 @@ static int __pci_enable_msix(struct msi_ - old_desc = find_msi_entry(pdev, msi->irq, PCI_CAP_ID_MSIX); - if ( old_desc ) - { -- printk(XENLOG_WARNING "irq %d already mapped to MSI-X on %04x:%02x:%02x.%u\n", -+ printk(XENLOG_ERR "irq %d already mapped to MSI-X on %04x:%02x:%02x.%u\n", - msi->irq, msi->seg, msi->bus, - PCI_SLOT(msi->devfn), PCI_FUNC(msi->devfn)); -- *desc = old_desc; -- return 0; -+ return -EEXIST; - } - - old_desc = find_msi_entry(pdev, -1, PCI_CAP_ID_MSI); Property changes on: head/emulators/xen-kernel/files/0003-x86-MSI-disallow-redundant-enabling.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/0004-gnttab-correct-maptrack-table-accesses.patch =================================================================== --- head/emulators/xen-kernel/files/0004-gnttab-correct-maptrack-table-accesses.patch (revision 475253) +++ head/emulators/xen-kernel/files/0004-gnttab-correct-maptrack-table-accesses.patch (nonexistent) @@ -1,84 +0,0 @@ -From bb765f7863e5d19eebcfb29c117e2909bce241e7 Mon Sep 17 00:00:00 2001 -From: Jan Beulich -Date: Thu, 15 Jun 2017 12:05:29 +0100 -Subject: [PATCH 4/4] gnttab: correct maptrack table accesses - -In order to observe a consistent (limit,pointer-table) pair, the reader -needs to either hold the maptrack lock (in line with documentation) or -both sides need to order their accesses suitably (the writer side -barrier was removed by commit dff515dfea ["gnttab: use per-VCPU -maptrack free lists"], and a read side barrier has never been there). - -Make the writer publish a new table page before limit (for bounds -checks to work), and new list head last (for racing maptrack_entry() -invocations to work). At the same time add read barriers to lockless -readers. - -Additionally get_maptrack_handle() must not assume ->maptrack_head to -not change behind its back: Another handle may be put (updating only -->maptrack_tail) and then got or stolen (updating ->maptrack_head). - -This is part of XSA-218. - -Signed-off-by: Jan Beulich -Reviewed-by: George Dunlap ---- - xen/common/grant_table.c | 13 +++++++++---- - 1 file changed, 9 insertions(+), 4 deletions(-) - -diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c -index 81a1a8b..c4d73af 100644 ---- a/xen/common/grant_table.c -+++ b/xen/common/grant_table.c -@@ -395,7 +395,7 @@ get_maptrack_handle( - struct grant_table *lgt) - { - struct vcpu *curr = current; -- int i; -+ unsigned int i, head; - grant_handle_t handle; - struct grant_mapping *new_mt; - -@@ -451,17 +451,20 @@ get_maptrack_handle( - new_mt[i].ref = handle + i + 1; - new_mt[i].vcpu = curr->vcpu_id; - } -- new_mt[i - 1].ref = curr->maptrack_head; - - /* Set tail directly if this is the first page for this VCPU. */ - if ( curr->maptrack_tail == MAPTRACK_TAIL ) - curr->maptrack_tail = handle + MAPTRACK_PER_PAGE - 1; - -- write_atomic(&curr->maptrack_head, handle + 1); -- - lgt->maptrack[nr_maptrack_frames(lgt)] = new_mt; -+ smp_wmb(); - lgt->maptrack_limit += MAPTRACK_PER_PAGE; - -+ do { -+ new_mt[i - 1].ref = read_atomic(&curr->maptrack_head); -+ head = cmpxchg(&curr->maptrack_head, new_mt[i - 1].ref, handle + 1); -+ } while ( head != new_mt[i - 1].ref ); -+ - spin_unlock(&lgt->maptrack_lock); - - return handle; -@@ -727,6 +730,7 @@ static unsigned int mapkind( - for ( handle = 0; !(kind & MAPKIND_WRITE) && - handle < lgt->maptrack_limit; handle++ ) - { -+ smp_rmb(); - map = &maptrack_entry(lgt, handle); - if ( !(map->flags & (GNTMAP_device_map|GNTMAP_host_map)) || - map->domid != rd->domain_id ) -@@ -1094,6 +1098,7 @@ __gnttab_unmap_common( - return; - } - -+ smp_rmb(); - map = &maptrack_entry(lgt, op->handle); - - grant_read_lock(lgt); --- -2.1.4 - Property changes on: head/emulators/xen-kernel/files/0004-gnttab-correct-maptrack-table-accesses.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa213-4.7.patch =================================================================== --- head/emulators/xen-kernel/files/xsa213-4.7.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa213-4.7.patch (nonexistent) @@ -1,173 +0,0 @@ -From: Jan Beulich -Subject: multicall: deal with early exit conditions - -In particular changes to guest privilege level require the multicall -sequence to be aborted, as hypercalls are permitted from kernel mode -only. While likely not very useful in a multicall, also properly handle -the return value in the HYPERVISOR_iret case (which should be the guest -specified value). - -This is XSA-213. - -Reported-by: Jann Horn -Signed-off-by: Jan Beulich -Reviewed-by: Andrew Cooper -Acked-by: Julien Grall - ---- a/xen/arch/arm/traps.c -+++ b/xen/arch/arm/traps.c -@@ -1529,30 +1529,33 @@ static bool_t check_multicall_32bit_clea - return true; - } - --void do_multicall_call(struct multicall_entry *multi) -+enum mc_disposition do_multicall_call(struct multicall_entry *multi) - { - arm_hypercall_fn_t call = NULL; - - if ( multi->op >= ARRAY_SIZE(arm_hypercall_table) ) - { - multi->result = -ENOSYS; -- return; -+ return mc_continue; - } - - call = arm_hypercall_table[multi->op].fn; - if ( call == NULL ) - { - multi->result = -ENOSYS; -- return; -+ return mc_continue; - } - - if ( is_32bit_domain(current->domain) && - !check_multicall_32bit_clean(multi) ) -- return; -+ return mc_continue; - - multi->result = call(multi->args[0], multi->args[1], - multi->args[2], multi->args[3], - multi->args[4]); -+ -+ return likely(!psr_mode_is_user(guest_cpu_user_regs())) -+ ? mc_continue : mc_preempt; - } - - /* ---- a/xen/common/multicall.c -+++ b/xen/common/multicall.c -@@ -40,6 +40,7 @@ do_multicall( - struct mc_state *mcs = ¤t->mc_state; - uint32_t i; - int rc = 0; -+ enum mc_disposition disp = mc_continue; - - if ( unlikely(__test_and_set_bit(_MCSF_in_multicall, &mcs->flags)) ) - { -@@ -50,7 +51,7 @@ do_multicall( - if ( unlikely(!guest_handle_okay(call_list, nr_calls)) ) - rc = -EFAULT; - -- for ( i = 0; !rc && i < nr_calls; i++ ) -+ for ( i = 0; !rc && disp == mc_continue && i < nr_calls; i++ ) - { - if ( i && hypercall_preempt_check() ) - goto preempted; -@@ -63,7 +64,7 @@ do_multicall( - - trace_multicall_call(&mcs->call); - -- do_multicall_call(&mcs->call); -+ disp = do_multicall_call(&mcs->call); - - #ifndef NDEBUG - { -@@ -77,7 +78,14 @@ do_multicall( - } - #endif - -- if ( unlikely(__copy_field_to_guest(call_list, &mcs->call, result)) ) -+ if ( unlikely(disp == mc_exit) ) -+ { -+ if ( __copy_field_to_guest(call_list, &mcs->call, result) ) -+ /* nothing, best effort only */; -+ rc = mcs->call.result; -+ } -+ else if ( unlikely(__copy_field_to_guest(call_list, &mcs->call, -+ result)) ) - rc = -EFAULT; - else if ( mcs->flags & MCSF_call_preempted ) - { -@@ -93,6 +101,9 @@ do_multicall( - guest_handle_add_offset(call_list, 1); - } - -+ if ( unlikely(disp == mc_preempt) && i < nr_calls ) -+ goto preempted; -+ - perfc_incr(calls_to_multicall); - perfc_add(calls_from_multicall, i); - mcs->flags = 0; ---- a/xen/include/asm-arm/multicall.h -+++ b/xen/include/asm-arm/multicall.h -@@ -1,7 +1,11 @@ - #ifndef __ASM_ARM_MULTICALL_H__ - #define __ASM_ARM_MULTICALL_H__ - --extern void do_multicall_call(struct multicall_entry *call); -+extern enum mc_disposition { -+ mc_continue, -+ mc_exit, -+ mc_preempt, -+} do_multicall_call(struct multicall_entry *call); - - #endif /* __ASM_ARM_MULTICALL_H__ */ - /* ---- a/xen/include/asm-x86/multicall.h -+++ b/xen/include/asm-x86/multicall.h -@@ -7,8 +7,21 @@ - - #include - -+enum mc_disposition { -+ mc_continue, -+ mc_exit, -+ mc_preempt, -+}; -+ -+#define multicall_ret(call) \ -+ (unlikely((call)->op == __HYPERVISOR_iret) \ -+ ? mc_exit \ -+ : likely(guest_kernel_mode(current, \ -+ guest_cpu_user_regs())) \ -+ ? mc_continue : mc_preempt) -+ - #define do_multicall_call(_call) \ -- do { \ -+ ({ \ - __asm__ __volatile__ ( \ - " movq %c1(%0),%%rax; " \ - " leaq hypercall_table(%%rip),%%rdi; " \ -@@ -37,9 +50,11 @@ - /* all the caller-saves registers */ \ - : "rax", "rcx", "rdx", "rsi", "rdi", \ - "r8", "r9", "r10", "r11" ); \ -- } while ( 0 ) -+ multicall_ret(_call); \ -+ }) - - #define compat_multicall_call(_call) \ -+ ({ \ - __asm__ __volatile__ ( \ - " movl %c1(%0),%%eax; " \ - " leaq compat_hypercall_table(%%rip),%%rdi; "\ -@@ -67,6 +82,8 @@ - "i" (-ENOSYS) \ - /* all the caller-saves registers */ \ - : "rax", "rcx", "rdx", "rsi", "rdi", \ -- "r8", "r9", "r10", "r11" ) \ -+ "r8", "r9", "r10", "r11" ); \ -+ multicall_ret(_call); \ -+ }) - - #endif /* __ASM_X86_MULTICALL_H__ */ Property changes on: head/emulators/xen-kernel/files/xsa213-4.7.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa228-4.8.patch =================================================================== --- head/emulators/xen-kernel/files/xsa228-4.8.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa228-4.8.patch (nonexistent) @@ -1,198 +0,0 @@ -From cb91f4c43bd4158daa6561c73921a6455176f278 Mon Sep 17 00:00:00 2001 -From: Jan Beulich -Date: Mon, 31 Jul 2017 15:17:56 +0100 -Subject: [PATCH] gnttab: split maptrack lock to make it fulfill its purpose - again - -The way the lock is currently being used in get_maptrack_handle(), it -protects only the maptrack limit: The function acts on current's list -only, so races on list accesses are impossible even without the lock. - -Otoh list access races are possible between __get_maptrack_handle() and -put_maptrack_handle(), due to the invocation of the former for other -than current from steal_maptrack_handle(). Introduce a per-vCPU lock -for list accesses to become race free again. This lock will be -uncontended except when it becomes necessary to take the steal path, -i.e. in the common case there should be no meaningful performance -impact. - -When in get_maptrack_handle adds a stolen entry to a fresh, empty, -freelist, we think that there is probably no concurrency. However, -this is not a fast path and adding the locking there makes the code -clearly correct. - -Also, while we are here: the stolen maptrack_entry's tail pointer was -not properly set. Set it. - -This is XSA-228. - -Reported-by: Ian Jackson -Signed-off-by: Jan Beulich -Signed-off-by: Ian Jackson ---- - docs/misc/grant-tables.txt | 7 ++++++- - xen/common/grant_table.c | 30 ++++++++++++++++++++++++------ - xen/include/xen/grant_table.h | 2 +- - xen/include/xen/sched.h | 1 + - 4 files changed, 32 insertions(+), 8 deletions(-) - -diff --git a/docs/misc/grant-tables.txt b/docs/misc/grant-tables.txt -index 417ce2d..64da5cf 100644 ---- a/docs/misc/grant-tables.txt -+++ b/docs/misc/grant-tables.txt -@@ -87,7 +87,8 @@ is complete. - inconsistent grant table state such as current - version, partially initialized active table pages, - etc. -- grant_table->maptrack_lock : spinlock used to protect the maptrack free list -+ grant_table->maptrack_lock : spinlock used to protect the maptrack limit -+ v->maptrack_freelist_lock : spinlock used to protect the maptrack free list - active_grant_entry->lock : spinlock used to serialize modifications to - active entries - -@@ -102,6 +103,10 @@ is complete. - The maptrack free list is protected by its own spinlock. The maptrack - lock may be locked while holding the grant table lock. - -+ The maptrack_freelist_lock is an innermost lock. It may be locked -+ while holding other locks, but no other locks may be acquired within -+ it. -+ - Active entries are obtained by calling active_entry_acquire(gt, ref). - This function returns a pointer to the active entry after locking its - spinlock. The caller must hold the grant table read lock before -diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c -index f9654f1..593121c 100644 ---- a/xen/common/grant_table.c -+++ b/xen/common/grant_table.c -@@ -304,11 +304,16 @@ __get_maptrack_handle( - { - unsigned int head, next, prev_head; - -+ spin_lock(&v->maptrack_freelist_lock); -+ - do { - /* No maptrack pages allocated for this VCPU yet? */ - head = read_atomic(&v->maptrack_head); - if ( unlikely(head == MAPTRACK_TAIL) ) -+ { -+ spin_unlock(&v->maptrack_freelist_lock); - return -1; -+ } - - /* - * Always keep one entry in the free list to make it easier to -@@ -316,12 +321,17 @@ __get_maptrack_handle( - */ - next = read_atomic(&maptrack_entry(t, head).ref); - if ( unlikely(next == MAPTRACK_TAIL) ) -+ { -+ spin_unlock(&v->maptrack_freelist_lock); - return -1; -+ } - - prev_head = head; - head = cmpxchg(&v->maptrack_head, prev_head, next); - } while ( head != prev_head ); - -+ spin_unlock(&v->maptrack_freelist_lock); -+ - return head; - } - -@@ -380,6 +390,8 @@ put_maptrack_handle( - /* 2. Add entry to the tail of the list on the original VCPU. */ - v = currd->vcpu[maptrack_entry(t, handle).vcpu]; - -+ spin_lock(&v->maptrack_freelist_lock); -+ - cur_tail = read_atomic(&v->maptrack_tail); - do { - prev_tail = cur_tail; -@@ -388,6 +400,8 @@ put_maptrack_handle( - - /* 3. Update the old tail entry to point to the new entry. */ - write_atomic(&maptrack_entry(t, prev_tail).ref, handle); -+ -+ spin_unlock(&v->maptrack_freelist_lock); - } - - static inline int -@@ -411,10 +425,6 @@ get_maptrack_handle( - */ - if ( nr_maptrack_frames(lgt) >= max_maptrack_frames ) - { -- /* -- * Can drop the lock since no other VCPU can be adding a new -- * frame once they've run out. -- */ - spin_unlock(&lgt->maptrack_lock); - - /* -@@ -426,8 +436,12 @@ get_maptrack_handle( - handle = steal_maptrack_handle(lgt, curr); - if ( handle == -1 ) - return -1; -+ spin_lock(&curr->maptrack_freelist_lock); -+ maptrack_entry(lgt, handle).ref = MAPTRACK_TAIL; - curr->maptrack_tail = handle; -- write_atomic(&curr->maptrack_head, handle); -+ if ( curr->maptrack_head == MAPTRACK_TAIL ) -+ write_atomic(&curr->maptrack_head, handle); -+ spin_unlock(&curr->maptrack_freelist_lock); - } - return steal_maptrack_handle(lgt, curr); - } -@@ -460,12 +474,15 @@ get_maptrack_handle( - smp_wmb(); - lgt->maptrack_limit += MAPTRACK_PER_PAGE; - -+ spin_unlock(&lgt->maptrack_lock); -+ spin_lock(&curr->maptrack_freelist_lock); -+ - do { - new_mt[i - 1].ref = read_atomic(&curr->maptrack_head); - head = cmpxchg(&curr->maptrack_head, new_mt[i - 1].ref, handle + 1); - } while ( head != new_mt[i - 1].ref ); - -- spin_unlock(&lgt->maptrack_lock); -+ spin_unlock(&curr->maptrack_freelist_lock); - - return handle; - } -@@ -3474,6 +3491,7 @@ grant_table_destroy( - - void grant_table_init_vcpu(struct vcpu *v) - { -+ spin_lock_init(&v->maptrack_freelist_lock); - v->maptrack_head = MAPTRACK_TAIL; - v->maptrack_tail = MAPTRACK_TAIL; - } -diff --git a/xen/include/xen/grant_table.h b/xen/include/xen/grant_table.h -index 4e77899..100f2b3 100644 ---- a/xen/include/xen/grant_table.h -+++ b/xen/include/xen/grant_table.h -@@ -78,7 +78,7 @@ struct grant_table { - /* Mapping tracking table per vcpu. */ - struct grant_mapping **maptrack; - unsigned int maptrack_limit; -- /* Lock protecting the maptrack page list, head, and limit */ -+ /* Lock protecting the maptrack limit */ - spinlock_t maptrack_lock; - /* The defined versions are 1 and 2. Set to 0 if we don't know - what version to use yet. */ -diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h -index 1fbda87..ff0f38f 100644 ---- a/xen/include/xen/sched.h -+++ b/xen/include/xen/sched.h -@@ -223,6 +223,7 @@ struct vcpu - int controller_pause_count; - - /* Maptrack */ -+ spinlock_t maptrack_freelist_lock; - unsigned int maptrack_head; - unsigned int maptrack_tail; - --- -2.1.4 - Property changes on: head/emulators/xen-kernel/files/xsa228-4.8.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa226-4.7.patch =================================================================== --- head/emulators/xen-kernel/files/xsa226-4.7.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa226-4.7.patch (nonexistent) @@ -1,133 +0,0 @@ -From: Andrew Cooper -Subject: grant_table: Default to v1, and disallow transitive grants - -The reference counting and locking discipline for transitive grants is broken. -Their use is therefore declared out of security support. - -This is XSA-226. - -Transitive grants are expected to be unconditionally available with grant -table v2. Hiding transitive grants alone is an ABI breakage for the guest. -Modern versions of Linux and the Windows PV drivers use grant table v1, but -older versions did use v2. - -In principle, disabling gnttab v2 entirely is the safer way to cause guests to -avoid using transitive grants. However, some older guests which defaulted to -using gnttab v2 don't tolerate falling back from v2 to v1 over migrate. - -This patch introduces a new command line option to control grant table -behaviour. One suboption allows a choice of the maximum grant table version -Xen will allow the guest to use, and defaults to v2. A different suboption -independently controls whether transitive grants can be used. - -The default case is: - - gnttab=max_ver:2 - -To disable gnttab v2 entirely, use: - - gnttab=max_ver:1 - -To allow gnttab v2 and transitive grants, use: - - gnttab=max_ver:2,transitive - -Reported-by: Jan Beulich -Signed-off-by: Andrew Cooper -diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown -index 73f5265..b792abf 100644 ---- a/docs/misc/xen-command-line.markdown -+++ b/docs/misc/xen-command-line.markdown -@@ -758,6 +758,22 @@ Controls EPT related features. - - Specify which console gdbstub should use. See **console**. - -+### gnttab -+> `= List of [ max_ver:, transitive ]` -+ -+> Default: `gnttab=max_ver:2,no-transitive` -+ -+Control various aspects of the grant table behaviour available to guests. -+ -+* `max_ver` Select the maximum grant table version to offer to guests. Valid -+version are 1 and 2. -+* `transitive` Permit or disallow the use of transitive grants. Note that the -+use of grant table v2 without transitive grants is an ABI breakage from the -+guests point of view. -+ -+*Warning:* -+Due to XSA-226, the use of transitive grants is outside of security support. -+ - ### gnttab\_max\_frames - > `= ` - -diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c -index f06b664..109c552 100644 ---- a/xen/common/grant_table.c -+++ b/xen/common/grant_table.c -@@ -50,6 +50,42 @@ integer_param("gnttab_max_nr_frames", max_nr_grant_frames); - unsigned int __read_mostly max_grant_frames; - integer_param("gnttab_max_frames", max_grant_frames); - -+static unsigned int __read_mostly opt_gnttab_max_version = 2; -+static bool_t __read_mostly opt_transitive_grants; -+ -+static void __init parse_gnttab(char *s) -+{ -+ char *ss; -+ -+ do { -+ ss = strchr(s, ','); -+ if ( ss ) -+ *ss = '\0'; -+ -+ if ( !strncmp(s, "max_ver:", 8) ) -+ { -+ long ver = simple_strtol(s + 8, NULL, 10); -+ -+ if ( ver >= 1 && ver <= 2 ) -+ opt_gnttab_max_version = ver; -+ } -+ else -+ { -+ bool_t val = !!strncmp(s, "no-", 3); -+ -+ if ( !val ) -+ s += 3; -+ -+ if ( !strcmp(s, "transitive") ) -+ opt_transitive_grants = val; -+ } -+ -+ s = ss + 1; -+ } while ( ss ); -+} -+ -+custom_param("gnttab", parse_gnttab); -+ - /* The maximum number of grant mappings is defined as a multiplier of the - * maximum number of grant table entries. This defines the multiplier used. - * Pretty arbitrary. [POLICY] -@@ -2188,6 +2224,10 @@ __acquire_grant_for_copy( - } - else if ( (shah->flags & GTF_type_mask) == GTF_transitive ) - { -+ if ( !opt_transitive_grants ) -+ PIN_FAIL(unlock_out_clear, GNTST_general_error, -+ "transitive grant disallowed by policy\n"); -+ - if ( !allow_transitive ) - PIN_FAIL(unlock_out_clear, GNTST_general_error, - "transitive grant when transitivity not allowed\n"); -@@ -3156,7 +3196,10 @@ do_grant_table_op( - } - case GNTTABOP_set_version: - { -- rc = gnttab_set_version(guest_handle_cast(uop, gnttab_set_version_t)); -+ if ( opt_gnttab_max_version == 1 ) -+ rc = -ENOSYS; /* Behave as before set_version was introduced. */ -+ else -+ rc = gnttab_set_version(guest_handle_cast(uop, gnttab_set_version_t)); - break; - } - case GNTTABOP_get_status_frames: Property changes on: head/emulators/xen-kernel/files/xsa226-4.7.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa220-4.7.patch =================================================================== --- head/emulators/xen-kernel/files/xsa220-4.7.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa220-4.7.patch (nonexistent) @@ -1,133 +0,0 @@ -From: Jan Beulich -Subject: x86: avoid leaking PKRU and BND* between vCPU-s - -PKRU is explicitly "XSAVE-managed but not XSAVE-enabled", so guests -might access the register (via {RD,WR}PKRU) without setting XCR0.PKRU. -Force context switching as well as migrating the register as soon as -CR4.PKE is being set the first time. - -For MPX (BND, BNDCFGU, and BNDSTATUS) the situation is less clear, -and the SDM has not entirely consistent information for that case. -While experimentally the instructions don't change register state as -long as the two XCR0 bits aren't both 1, be on the safe side and enable -both if BNDCFGS.EN is being set the first time. - -This is XSA-220. - -Reported-by: Andrew Cooper -Signed-off-by: Jan Beulich -Reviewed-by: Andrew Cooper - ---- a/xen/arch/x86/hvm/hvm.c -+++ b/xen/arch/x86/hvm/hvm.c -@@ -2452,6 +2452,27 @@ int hvm_set_cr4(unsigned long value, boo - paging_update_paging_modes(v); - } - -+ /* -+ * {RD,WR}PKRU are not gated on XCR0.PKRU and hence an oddly behaving -+ * guest may enable the feature in CR4 without enabling it in XCR0. We -+ * need to context switch / migrate PKRU nevertheless. -+ */ -+ if ( (value & X86_CR4_PKE) && !(v->arch.xcr0_accum & XSTATE_PKRU) ) -+ { -+ int rc = handle_xsetbv(XCR_XFEATURE_ENABLED_MASK, -+ get_xcr0() | XSTATE_PKRU); -+ -+ if ( rc ) -+ { -+ HVM_DBG_LOG(DBG_LEVEL_1, "Failed to force XCR0.PKRU: %d", rc); -+ goto gpf; -+ } -+ -+ if ( handle_xsetbv(XCR_XFEATURE_ENABLED_MASK, -+ get_xcr0() & ~XSTATE_PKRU) ) -+ /* nothing, best effort only */; -+ } -+ - return X86EMUL_OKAY; - - gpf: ---- a/xen/arch/x86/hvm/vmx/vmx.c -+++ b/xen/arch/x86/hvm/vmx/vmx.c -@@ -31,6 +31,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -783,6 +784,45 @@ static int vmx_load_vmcs_ctxt(struct vcp - return 0; - } - -+static bool_t vmx_set_guest_bndcfgs(struct vcpu *v, u64 val) -+{ -+ if ( !cpu_has_mpx || !cpu_has_vmx_mpx || -+ !is_canonical_address(val) || -+ (val & IA32_BNDCFGS_RESERVED) ) -+ return 0; -+ -+ /* -+ * While MPX instructions are supposed to be gated on XCR0.BND*, let's -+ * nevertheless force the relevant XCR0 bits on when the feature is being -+ * enabled in BNDCFGS. -+ */ -+ if ( (val & IA32_BNDCFGS_ENABLE) && -+ !(v->arch.xcr0_accum & (XSTATE_BNDREGS | XSTATE_BNDCSR)) ) -+ { -+ uint64_t xcr0 = get_xcr0(); -+ int rc; -+ -+ if ( v != current ) -+ return 0; -+ -+ rc = handle_xsetbv(XCR_XFEATURE_ENABLED_MASK, -+ xcr0 | XSTATE_BNDREGS | XSTATE_BNDCSR); -+ -+ if ( rc ) -+ { -+ HVM_DBG_LOG(DBG_LEVEL_1, "Failed to force XCR0.BND*: %d", rc); -+ return 0; -+ } -+ -+ if ( handle_xsetbv(XCR_XFEATURE_ENABLED_MASK, xcr0) ) -+ /* nothing, best effort only */; -+ } -+ -+ __vmwrite(GUEST_BNDCFGS, val); -+ -+ return 1; -+} -+ - static unsigned int __init vmx_init_msr(void) - { - return (cpu_has_mpx && cpu_has_vmx_mpx) + -@@ -822,11 +862,8 @@ static int vmx_load_msr(struct vcpu *v, - switch ( ctxt->msr[i].index ) - { - case MSR_IA32_BNDCFGS: -- if ( cpu_has_mpx && cpu_has_vmx_mpx && -- is_canonical_address(ctxt->msr[i].val) && -- !(ctxt->msr[i].val & IA32_BNDCFGS_RESERVED) ) -- __vmwrite(GUEST_BNDCFGS, ctxt->msr[i].val); -- else if ( ctxt->msr[i].val ) -+ if ( !vmx_set_guest_bndcfgs(v, ctxt->msr[i].val) && -+ ctxt->msr[i].val ) - err = -ENXIO; - break; - case MSR_IA32_XSS: -@@ -2878,11 +2915,8 @@ static int vmx_msr_write_intercept(unsig - break; - } - case MSR_IA32_BNDCFGS: -- if ( !cpu_has_mpx || !cpu_has_vmx_mpx || -- !is_canonical_address(msr_content) || -- (msr_content & IA32_BNDCFGS_RESERVED) ) -+ if ( !vmx_set_guest_bndcfgs(v, msr_content) ) - goto gp_fault; -- __vmwrite(GUEST_BNDCFGS, msr_content); - break; - case IA32_FEATURE_CONTROL_MSR: - case MSR_IA32_VMX_BASIC...MSR_IA32_VMX_TRUE_ENTRY_CTLS: Property changes on: head/emulators/xen-kernel/files/xsa220-4.7.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/0004-gnttab-__gnttab_unmap_common_complete-is-all-or-noth.patch =================================================================== --- head/emulators/xen-kernel/files/0004-gnttab-__gnttab_unmap_common_complete-is-all-or-noth.patch (revision 475253) +++ head/emulators/xen-kernel/files/0004-gnttab-__gnttab_unmap_common_complete-is-all-or-noth.patch (nonexistent) @@ -1,319 +0,0 @@ -From 3ad26b95cd9bacedad5ba503515cf6e618162be1 Mon Sep 17 00:00:00 2001 -From: Jan Beulich -Date: Thu, 15 Jun 2017 16:25:27 +0100 -Subject: [PATCH 4/4] gnttab: __gnttab_unmap_common_complete() is - all-or-nothing - -All failures have to be detected in __gnttab_unmap_common(), the -completion function must not skip part of its processing. In particular -the GNTMAP_device_map related putting of page references and adjustment -of pin count must not occur if __gnttab_unmap_common() signaled an -error. Furthermore the function must not make adjustments to global -state (here: clearing GNTTAB_device_map) before all possibly failing -operations have been performed. - -There's one exception for IOMMU related failures: As IOMMU manipulation -occurs after GNTMAP_*_map have been cleared already, the related page -reference and pin count adjustments need to be done nevertheless. A -fundamental requirement for the correctness of this is that -iommu_{,un}map_page() crash any affected DomU in case of failure. - -The version check appears to be pointless (or could perhaps be a -BUG_ON() or ASSERT()), but for the moment also move it. - -This is part of XSA-224. - -Reported-by: Jan Beulich -Signed-off-by: Jan Beulich ---- - xen/common/grant_table.c | 108 ++++++++++++++++++-------------------- - xen/include/asm-arm/grant_table.h | 2 +- - xen/include/asm-x86/grant_table.h | 5 +- - 3 files changed, 55 insertions(+), 60 deletions(-) - -diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c -index 5e92e2c..025aad0 100644 ---- a/xen/common/grant_table.c -+++ b/xen/common/grant_table.c -@@ -96,7 +96,7 @@ struct gnttab_unmap_common { - int16_t status; - - /* Shared state beteen *_unmap and *_unmap_complete */ -- u16 flags; -+ u16 done; - unsigned long frame; - struct domain *rd; - grant_ref_t ref; -@@ -948,7 +948,8 @@ __gnttab_map_grant_ref( - refcnt++; - } - -- if ( gnttab_host_mapping_get_page_type(op, ld, rd) ) -+ if ( gnttab_host_mapping_get_page_type(op->flags & GNTMAP_readonly, -+ ld, rd) ) - { - if ( (owner == dom_cow) || - !get_page_type(pg, PGT_writable_page) ) -@@ -1095,6 +1096,7 @@ __gnttab_unmap_common( - struct active_grant_entry *act; - s16 rc = 0; - struct grant_mapping *map; -+ unsigned int flags; - bool_t put_handle = 0; - - ld = current->domain; -@@ -1145,6 +1147,20 @@ __gnttab_unmap_common( - - grant_read_lock(rgt); - -+ if ( rgt->gt_version == 0 ) -+ { -+ /* -+ * This ought to be impossible, as such a mapping should not have -+ * been established (see the nr_grant_entries(rgt) bounds check in -+ * __gnttab_map_grant_ref()). Doing this check only in -+ * __gnttab_unmap_common_complete() - as it used to be done - would, -+ * however, be too late. -+ */ -+ rc = GNTST_bad_gntref; -+ flags = 0; -+ goto unlock_out; -+ } -+ - op->rd = rd; - op->ref = map->ref; - -@@ -1160,6 +1176,7 @@ __gnttab_unmap_common( - { - gdprintk(XENLOG_WARNING, "Unstable handle %#x\n", op->handle); - rc = GNTST_bad_handle; -+ flags = 0; - goto unlock_out; - } - -@@ -1173,9 +1190,9 @@ __gnttab_unmap_common( - * hold anyway; see docs/misc/grant-tables.txt's "Locking" section. - */ - -- op->flags = read_atomic(&map->flags); -+ flags = read_atomic(&map->flags); - smp_rmb(); -- if ( unlikely(!op->flags) || unlikely(map->domid != dom) || -+ if ( unlikely(!flags) || unlikely(map->domid != dom) || - unlikely(map->ref != op->ref) ) - { - gdprintk(XENLOG_WARNING, "Unstable handle %#x\n", op->handle); -@@ -1185,24 +1202,27 @@ __gnttab_unmap_common( - - op->frame = act->frame; - -- if ( op->dev_bus_addr ) -- { -- if ( unlikely(op->dev_bus_addr != pfn_to_paddr(act->frame)) ) -- PIN_FAIL(act_release_out, GNTST_general_error, -- "Bus address doesn't match gntref (%"PRIx64" != %"PRIpaddr")\n", -- op->dev_bus_addr, pfn_to_paddr(act->frame)); -- -- map->flags &= ~GNTMAP_device_map; -- } -+ if ( op->dev_bus_addr && -+ unlikely(op->dev_bus_addr != pfn_to_paddr(act->frame)) ) -+ PIN_FAIL(act_release_out, GNTST_general_error, -+ "Bus address doesn't match gntref (%"PRIx64" != %"PRIpaddr")\n", -+ op->dev_bus_addr, pfn_to_paddr(act->frame)); - -- if ( (op->host_addr != 0) && (op->flags & GNTMAP_host_map) ) -+ if ( op->host_addr && (flags & GNTMAP_host_map) ) - { - if ( (rc = replace_grant_host_mapping(op->host_addr, - op->frame, op->new_addr, -- op->flags)) < 0 ) -+ flags)) < 0 ) - goto act_release_out; - - map->flags &= ~GNTMAP_host_map; -+ op->done |= GNTMAP_host_map | (flags & GNTMAP_readonly); -+ } -+ -+ if ( op->dev_bus_addr && (flags & GNTMAP_device_map) ) -+ { -+ map->flags &= ~GNTMAP_device_map; -+ op->done |= GNTMAP_device_map | (flags & GNTMAP_readonly); - } - - if ( !(map->flags & (GNTMAP_device_map|GNTMAP_host_map)) ) -@@ -1239,7 +1259,7 @@ __gnttab_unmap_common( - } - - /* If just unmapped a writable mapping, mark as dirtied */ -- if ( rc == GNTST_okay && !(op->flags & GNTMAP_readonly) ) -+ if ( rc == GNTST_okay && !(flags & GNTMAP_readonly) ) - gnttab_mark_dirty(rd, op->frame); - - op->status = rc; -@@ -1256,13 +1276,9 @@ __gnttab_unmap_common_complete(struct gnttab_unmap_common *op) - struct page_info *pg; - uint16_t *status; - -- if ( rd == NULL ) -+ if ( !op->done ) - { -- /* -- * Suggests that __gntab_unmap_common failed in -- * rcu_lock_domain_by_id() or earlier, and so we have nothing -- * to complete -- */ -+ /* __gntab_unmap_common() didn't do anything - nothing to complete. */ - return; - } - -@@ -1272,8 +1288,6 @@ __gnttab_unmap_common_complete(struct gnttab_unmap_common *op) - rgt = rd->grant_table; - - grant_read_lock(rgt); -- if ( rgt->gt_version == 0 ) -- goto unlock_out; - - act = active_entry_acquire(rgt, op->ref); - sha = shared_entry_header(rgt, op->ref); -@@ -1283,72 +1297,50 @@ __gnttab_unmap_common_complete(struct gnttab_unmap_common *op) - else - status = &status_entry(rgt, op->ref); - -- if ( op->dev_bus_addr && -- unlikely(op->dev_bus_addr != pfn_to_paddr(act->frame)) ) -- { -- /* -- * Suggests that __gntab_unmap_common failed early and so -- * nothing further to do -- */ -- goto act_release_out; -- } -- - pg = mfn_to_page(op->frame); - -- if ( op->dev_bus_addr && (op->flags & GNTMAP_device_map) ) -+ if ( op->done & GNTMAP_device_map ) - { - if ( !is_iomem_page(act->frame) ) - { -- if ( op->flags & GNTMAP_readonly ) -+ if ( op->done & GNTMAP_readonly ) - put_page(pg); - else - put_page_and_type(pg); - } - - ASSERT(act->pin & (GNTPIN_devw_mask | GNTPIN_devr_mask)); -- if ( op->flags & GNTMAP_readonly ) -+ if ( op->done & GNTMAP_readonly ) - act->pin -= GNTPIN_devr_inc; - else - act->pin -= GNTPIN_devw_inc; - } - -- if ( (op->host_addr != 0) && (op->flags & GNTMAP_host_map) ) -+ if ( op->done & GNTMAP_host_map ) - { -- if ( op->status != 0 ) -+ if ( !is_iomem_page(op->frame) ) - { -- /* -- * Suggests that __gntab_unmap_common failed in -- * replace_grant_host_mapping() or IOMMU handling, so nothing -- * further to do (short of re-establishing the mapping in the -- * latter case). -- */ -- goto act_release_out; -- } -- -- if ( !is_iomem_page(op->frame) ) -- { -- if ( gnttab_host_mapping_get_page_type(op, ld, rd) ) -+ if ( gnttab_host_mapping_get_page_type(op->done & GNTMAP_readonly, -+ ld, rd) ) - put_page_type(pg); - put_page(pg); - } - - ASSERT(act->pin & (GNTPIN_hstw_mask | GNTPIN_hstr_mask)); -- if ( op->flags & GNTMAP_readonly ) -+ if ( op->done & GNTMAP_readonly ) - act->pin -= GNTPIN_hstr_inc; - else - act->pin -= GNTPIN_hstw_inc; - } - - if ( ((act->pin & (GNTPIN_devw_mask|GNTPIN_hstw_mask)) == 0) && -- !(op->flags & GNTMAP_readonly) ) -+ !(op->done & GNTMAP_readonly) ) - gnttab_clear_flag(_GTF_writing, status); - - if ( act->pin == 0 ) - gnttab_clear_flag(_GTF_reading, status); - -- act_release_out: - active_entry_release(act); -- unlock_out: - grant_read_unlock(rgt); - - rcu_unlock_domain(rd); -@@ -1364,6 +1356,7 @@ __gnttab_unmap_grant_ref( - common->handle = op->handle; - - /* Intialise these in case common contains old state */ -+ common->done = 0; - common->new_addr = 0; - common->rd = NULL; - common->frame = 0; -@@ -1429,6 +1422,7 @@ __gnttab_unmap_and_replace( - common->handle = op->handle; - - /* Intialise these in case common contains old state */ -+ common->done = 0; - common->dev_bus_addr = 0; - common->rd = NULL; - common->frame = 0; -@@ -3389,7 +3383,9 @@ gnttab_release_mappings( - if ( gnttab_release_host_mappings(d) && - !is_iomem_page(act->frame) ) - { -- if ( gnttab_host_mapping_get_page_type(map, d, rd) ) -+ if ( gnttab_host_mapping_get_page_type((map->flags & -+ GNTMAP_readonly), -+ d, rd) ) - put_page_type(pg); - put_page(pg); - } -diff --git a/xen/include/asm-arm/grant_table.h b/xen/include/asm-arm/grant_table.h -index 5e076cc..d76c7c7 100644 ---- a/xen/include/asm-arm/grant_table.h -+++ b/xen/include/asm-arm/grant_table.h -@@ -9,7 +9,7 @@ void gnttab_clear_flag(unsigned long nr, uint16_t *addr); - int create_grant_host_mapping(unsigned long gpaddr, - unsigned long mfn, unsigned int flags, unsigned int - cache_flags); --#define gnttab_host_mapping_get_page_type(op, d, rd) (0) -+#define gnttab_host_mapping_get_page_type(ro, ld, rd) (0) - int replace_grant_host_mapping(unsigned long gpaddr, unsigned long mfn, - unsigned long new_gpaddr, unsigned int flags); - void gnttab_mark_dirty(struct domain *d, unsigned long l); -diff --git a/xen/include/asm-x86/grant_table.h b/xen/include/asm-x86/grant_table.h -index 8c9bbcf..9ca631c 100644 ---- a/xen/include/asm-x86/grant_table.h -+++ b/xen/include/asm-x86/grant_table.h -@@ -58,9 +58,8 @@ static inline void gnttab_clear_flag(unsigned int nr, uint16_t *st) - } - - /* Foreign mappings of HHVM-guest pages do not modify the type count. */ --#define gnttab_host_mapping_get_page_type(op, ld, rd) \ -- (!((op)->flags & GNTMAP_readonly) && \ -- (((ld) == (rd)) || !paging_mode_external(rd))) -+#define gnttab_host_mapping_get_page_type(ro, ld, rd) \ -+ (!(ro) && (((ld) == (rd)) || !paging_mode_external(rd))) - - /* Done implicitly when page tables are destroyed. */ - #define gnttab_release_host_mappings(domain) ( paging_mode_external(domain) ) --- -2.1.4 - Property changes on: head/emulators/xen-kernel/files/0004-gnttab-__gnttab_unmap_common_complete-is-all-or-noth.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa236-4.9.patch =================================================================== --- head/emulators/xen-kernel/files/xsa236-4.9.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa236-4.9.patch (nonexistent) @@ -1,66 +0,0 @@ -From: Jan Beulich -Subject: gnttab: fix pin count / page reference race - -Dropping page references before decrementing pin counts is a bad idea -if assumptions are being made that a non-zero pin count implies a valid -page. Fix the order of operations in gnttab_copy_release_buf(), but at -the same time also remove the assertion that was found to trigger: -map_grant_ref() also has the potential of causing a race here, and -changing the order of operations there would likely be quite a bit more -involved. - -This is XSA-236. - -Reported-by: Pawel Wieczorkiewicz -Signed-off-by: Jan Beulich -Reviewed-by: Andrew Cooper - ---- a/xen/common/grant_table.c -+++ b/xen/common/grant_table.c -@@ -2330,9 +2330,20 @@ __acquire_grant_for_copy( - td = page_get_owner_and_reference(*page); - /* - * act->pin being non-zero should guarantee the page to have a -- * non-zero refcount and hence a valid owner. -+ * non-zero refcount and hence a valid owner (matching the one on -+ * record), with one exception: If the owning domain is dying we -+ * had better not make implications from pin count (map_grant_ref() -+ * updates pin counts before obtaining page references, for -+ * example). - */ -- ASSERT(td); -+ if ( td != rd || rd->is_dying ) -+ { -+ if ( td ) -+ put_page(*page); -+ *page = NULL; -+ rc = GNTST_bad_domain; -+ goto unlock_out_clear; -+ } - } - - act->pin += readonly ? GNTPIN_hstr_inc : GNTPIN_hstw_inc; -@@ -2451,6 +2462,11 @@ static void gnttab_copy_release_buf(stru - unmap_domain_page(buf->virt); - buf->virt = NULL; - } -+ if ( buf->have_grant ) -+ { -+ __release_grant_for_copy(buf->domain, buf->ptr.u.ref, buf->read_only); -+ buf->have_grant = 0; -+ } - if ( buf->have_type ) - { - put_page_type(buf->page); -@@ -2461,11 +2477,6 @@ static void gnttab_copy_release_buf(stru - put_page(buf->page); - buf->page = NULL; - } -- if ( buf->have_grant ) -- { -- __release_grant_for_copy(buf->domain, buf->ptr.u.ref, buf->read_only); -- buf->have_grant = 0; -- } - } - - static int gnttab_copy_claim_buf(const struct gnttab_copy *op, Property changes on: head/emulators/xen-kernel/files/xsa236-4.9.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa234-4.8.patch =================================================================== --- head/emulators/xen-kernel/files/xsa234-4.8.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa234-4.8.patch (nonexistent) @@ -1,185 +0,0 @@ -From: Jan Beulich -Subject: gnttab: also validate PTE permissions upon destroy/replace - -In order for PTE handling to match up with the reference counting done -by common code, presence and writability of grant mapping PTEs must -also be taken into account; validating just the frame number is not -enough. This is in particular relevant if a guest fiddles with grant -PTEs via non-grant hypercalls. - -Note that the flags being passed to replace_grant_host_mapping() -already happen to be those of the existing mapping, so no new function -parameter is needed. - -This is XSA-234. - -Reported-by: Andrew Cooper -Signed-off-by: Jan Beulich -Reviewed-by: Andrew Cooper - ---- a/xen/arch/x86/mm.c -+++ b/xen/arch/x86/mm.c -@@ -4017,7 +4017,8 @@ static int create_grant_pte_mapping( - } - - static int destroy_grant_pte_mapping( -- uint64_t addr, unsigned long frame, struct domain *d) -+ uint64_t addr, unsigned long frame, unsigned int grant_pte_flags, -+ struct domain *d) - { - int rc = GNTST_okay; - void *va; -@@ -4063,16 +4064,27 @@ static int destroy_grant_pte_mapping( - - ol1e = *(l1_pgentry_t *)va; - -- /* Check that the virtual address supplied is actually mapped to frame. */ -- if ( unlikely(l1e_get_pfn(ol1e) != frame) ) -+ /* -+ * Check that the PTE supplied actually maps frame (with appropriate -+ * permissions). -+ */ -+ if ( unlikely(l1e_get_pfn(ol1e) != frame) || -+ unlikely((l1e_get_flags(ol1e) ^ grant_pte_flags) & -+ (_PAGE_PRESENT | _PAGE_RW)) ) - { - page_unlock(page); -- MEM_LOG("PTE entry %lx for address %"PRIx64" doesn't match frame %lx", -- (unsigned long)l1e_get_intpte(ol1e), addr, frame); -+ MEM_LOG("PTE %"PRIpte" at %"PRIx64" doesn't match grant (%"PRIpte")", -+ l1e_get_intpte(ol1e), addr, -+ l1e_get_intpte(l1e_from_pfn(frame, grant_pte_flags))); - rc = GNTST_general_error; - goto failed; - } - -+ if ( unlikely((l1e_get_flags(ol1e) ^ grant_pte_flags) & -+ ~(_PAGE_AVAIL | PAGE_CACHE_ATTRS)) ) -+ MEM_LOG("PTE flags %x at %"PRIx64" don't match grant (%x)\n", -+ l1e_get_flags(ol1e), addr, grant_pte_flags); -+ - /* Delete pagetable entry. */ - if ( unlikely(!UPDATE_ENTRY - (l1, -@@ -4081,7 +4093,7 @@ static int destroy_grant_pte_mapping( - 0)) ) - { - page_unlock(page); -- MEM_LOG("Cannot delete PTE entry at %p", va); -+ MEM_LOG("Cannot delete PTE entry at %"PRIx64, addr); - rc = GNTST_general_error; - goto failed; - } -@@ -4149,7 +4161,8 @@ static int create_grant_va_mapping( - } - - static int replace_grant_va_mapping( -- unsigned long addr, unsigned long frame, l1_pgentry_t nl1e, struct vcpu *v) -+ unsigned long addr, unsigned long frame, unsigned int grant_pte_flags, -+ l1_pgentry_t nl1e, struct vcpu *v) - { - l1_pgentry_t *pl1e, ol1e; - unsigned long gl1mfn; -@@ -4185,19 +4198,30 @@ static int replace_grant_va_mapping( - - ol1e = *pl1e; - -- /* Check that the virtual address supplied is actually mapped to frame. */ -- if ( unlikely(l1e_get_pfn(ol1e) != frame) ) -- { -- MEM_LOG("PTE entry %lx for address %lx doesn't match frame %lx", -- l1e_get_pfn(ol1e), addr, frame); -+ /* -+ * Check that the virtual address supplied is actually mapped to frame -+ * (with appropriate permissions). -+ */ -+ if ( unlikely(l1e_get_pfn(ol1e) != frame) || -+ unlikely((l1e_get_flags(ol1e) ^ grant_pte_flags) & -+ (_PAGE_PRESENT | _PAGE_RW)) ) -+ { -+ MEM_LOG("PTE %"PRIpte" for %lx doesn't match grant (%"PRIpte")", -+ l1e_get_intpte(ol1e), addr, -+ l1e_get_intpte(l1e_from_pfn(frame, grant_pte_flags))); - rc = GNTST_general_error; - goto unlock_and_out; - } - -+ if ( unlikely((l1e_get_flags(ol1e) ^ grant_pte_flags) & -+ ~(_PAGE_AVAIL | PAGE_CACHE_ATTRS)) ) -+ MEM_LOG("PTE flags %x for %"PRIx64" don't match grant (%x)", -+ l1e_get_flags(ol1e), addr, grant_pte_flags); -+ - /* Delete pagetable entry. */ - if ( unlikely(!UPDATE_ENTRY(l1, pl1e, ol1e, nl1e, gl1mfn, v, 0)) ) - { -- MEM_LOG("Cannot delete PTE entry at %p", (unsigned long *)pl1e); -+ MEM_LOG("Cannot delete PTE entry for %"PRIx64, addr); - rc = GNTST_general_error; - goto unlock_and_out; - } -@@ -4211,9 +4235,11 @@ static int replace_grant_va_mapping( - } - - static int destroy_grant_va_mapping( -- unsigned long addr, unsigned long frame, struct vcpu *v) -+ unsigned long addr, unsigned long frame, unsigned int grant_pte_flags, -+ struct vcpu *v) - { -- return replace_grant_va_mapping(addr, frame, l1e_empty(), v); -+ return replace_grant_va_mapping(addr, frame, grant_pte_flags, -+ l1e_empty(), v); - } - - static int create_grant_p2m_mapping(uint64_t addr, unsigned long frame, -@@ -4307,21 +4333,40 @@ int replace_grant_host_mapping( - unsigned long gl1mfn; - struct page_info *l1pg; - int rc; -+ unsigned int grant_pte_flags; - - if ( paging_mode_external(current->domain) ) - return replace_grant_p2m_mapping(addr, frame, new_addr, flags); - -+ grant_pte_flags = -+ _PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_GNTTAB | _PAGE_NX; -+ -+ if ( flags & GNTMAP_application_map ) -+ grant_pte_flags |= _PAGE_USER; -+ if ( !(flags & GNTMAP_readonly) ) -+ grant_pte_flags |= _PAGE_RW; -+ /* -+ * On top of the explicit settings done by create_grant_host_mapping() -+ * also open-code relevant parts of adjust_guest_l1e(). Don't mirror -+ * available and cachability flags, though. -+ */ -+ if ( !is_pv_32bit_domain(curr->domain) ) -+ grant_pte_flags |= (grant_pte_flags & _PAGE_USER) -+ ? _PAGE_GLOBAL -+ : _PAGE_GUEST_KERNEL | _PAGE_USER; -+ - if ( flags & GNTMAP_contains_pte ) - { - if ( !new_addr ) -- return destroy_grant_pte_mapping(addr, frame, curr->domain); -+ return destroy_grant_pte_mapping(addr, frame, grant_pte_flags, -+ curr->domain); - - MEM_LOG("Unsupported grant table operation"); - return GNTST_general_error; - } - - if ( !new_addr ) -- return destroy_grant_va_mapping(addr, frame, curr); -+ return destroy_grant_va_mapping(addr, frame, grant_pte_flags, curr); - - pl1e = guest_map_l1e(new_addr, &gl1mfn); - if ( !pl1e ) -@@ -4369,7 +4414,7 @@ int replace_grant_host_mapping( - put_page(l1pg); - guest_unmap_l1e(pl1e); - -- rc = replace_grant_va_mapping(addr, frame, ol1e, curr); -+ rc = replace_grant_va_mapping(addr, frame, grant_pte_flags, ol1e, curr); - if ( rc && !paging_mode_refcounts(curr->domain) ) - put_page_from_l1e(ol1e, curr->domain); - Property changes on: head/emulators/xen-kernel/files/xsa234-4.8.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa231-4.7.patch =================================================================== --- head/emulators/xen-kernel/files/xsa231-4.7.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa231-4.7.patch (nonexistent) @@ -1,108 +0,0 @@ -From: George Dunlap -Subject: xen/mm: make sure node is less than MAX_NUMNODES - -The output of MEMF_get_node(memflags) can be as large as nodeid_t can -hold (currently 255). This is then used as an index to arrays of size -MAX_NUMNODE, which is 64 on x86 and 1 on ARM, can be passed in by an -untrusted guest (via memory_exchange and increase_reservation) and is -not currently bounds-checked. - -Check the value in page_alloc.c before using it, and also check the -value in the hypercall call sites and return -EINVAL if appropriate. -Don't permit domains other than the hardware or control domain to -allocate node-constrained memory. - -This is XSA-231. - -Reported-by: Matthew Daley -Signed-off-by: George Dunlap -Signed-off-by: Jan Beulich -Reviewed-by: Andrew Cooper - ---- a/xen/common/memory.c -+++ b/xen/common/memory.c -@@ -390,6 +390,31 @@ static void decrease_reservation(struct - a->nr_done = i; - } - -+static bool_t propagate_node(unsigned int xmf, unsigned int *memflags) -+{ -+ const struct domain *currd = current->domain; -+ -+ BUILD_BUG_ON(XENMEMF_get_node(0) != NUMA_NO_NODE); -+ BUILD_BUG_ON(MEMF_get_node(0) != NUMA_NO_NODE); -+ -+ if ( XENMEMF_get_node(xmf) == NUMA_NO_NODE ) -+ return 1; -+ -+ if ( is_hardware_domain(currd) || is_control_domain(currd) ) -+ { -+ if ( XENMEMF_get_node(xmf) >= MAX_NUMNODES ) -+ return 0; -+ -+ *memflags |= MEMF_node(XENMEMF_get_node(xmf)); -+ if ( xmf & XENMEMF_exact_node_request ) -+ *memflags |= MEMF_exact_node; -+ } -+ else if ( xmf & XENMEMF_exact_node_request ) -+ return 0; -+ -+ return 1; -+} -+ - static long memory_exchange(XEN_GUEST_HANDLE_PARAM(xen_memory_exchange_t) arg) - { - struct xen_memory_exchange exch; -@@ -462,6 +487,12 @@ static long memory_exchange(XEN_GUEST_HA - } - } - -+ if ( unlikely(!propagate_node(exch.out.mem_flags, &memflags)) ) -+ { -+ rc = -EINVAL; -+ goto fail_early; -+ } -+ - d = rcu_lock_domain_by_any_id(exch.in.domid); - if ( d == NULL ) - { -@@ -480,7 +511,6 @@ static long memory_exchange(XEN_GUEST_HA - d, - XENMEMF_get_address_bits(exch.out.mem_flags) ? : - (BITS_PER_LONG+PAGE_SHIFT))); -- memflags |= MEMF_node(XENMEMF_get_node(exch.out.mem_flags)); - - for ( i = (exch.nr_exchanged >> in_chunk_order); - i < (exch.in.nr_extents >> in_chunk_order); -@@ -834,12 +864,8 @@ static int construct_memop_from_reservat - } - read_unlock(&d->vnuma_rwlock); - } -- else -- { -- a->memflags |= MEMF_node(XENMEMF_get_node(r->mem_flags)); -- if ( r->mem_flags & XENMEMF_exact_node_request ) -- a->memflags |= MEMF_exact_node; -- } -+ else if ( unlikely(!propagate_node(r->mem_flags, &a->memflags)) ) -+ return -EINVAL; - - return 0; - } ---- a/xen/common/page_alloc.c -+++ b/xen/common/page_alloc.c -@@ -711,9 +711,13 @@ static struct page_info *alloc_heap_page - if ( node >= MAX_NUMNODES ) - node = cpu_to_node(smp_processor_id()); - } -+ else if ( unlikely(node >= MAX_NUMNODES) ) -+ { -+ ASSERT_UNREACHABLE(); -+ return NULL; -+ } - first_node = node; - -- ASSERT(node < MAX_NUMNODES); - ASSERT(zone_lo <= zone_hi); - ASSERT(zone_hi < NR_ZONES); - Property changes on: head/emulators/xen-kernel/files/xsa231-4.7.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/0003-gnttab-Avoid-potential-double-put-of-maptrack-entry.patch =================================================================== --- head/emulators/xen-kernel/files/0003-gnttab-Avoid-potential-double-put-of-maptrack-entry.patch (revision 475253) +++ head/emulators/xen-kernel/files/0003-gnttab-Avoid-potential-double-put-of-maptrack-entry.patch (nonexistent) @@ -1,232 +0,0 @@ -From 39b704785a8d330c02e8e2d2368c80dbaf679bc0 Mon Sep 17 00:00:00 2001 -From: George Dunlap -Date: Thu, 15 Jun 2017 12:05:14 +0100 -Subject: [PATCH 3/4] gnttab: Avoid potential double-put of maptrack entry - -Each grant mapping for a particular domain is tracked by an in-Xen -"maptrack" entry. This entry is is referenced by a "handle", which is -given to the guest when it calls gnttab_map_grant_ref(). - -There are two types of mapping a particular handle can refer to: -GNTMAP_host_map and GNTMAP_device_map. A given -gnttab_unmap_grant_ref() call can remove either only one or both of -these entries. When a particular handle has no entries left, it must -be freed. - -gnttab_unmap_grant_ref() loops through its grant unmap request list -twice. It first removes entries from any host pagetables and (if -appropraite) iommus; then it does a single domain TLB flush; then it -does the clean-up, including telling the granter that entries are no -longer being used (if appropriate). - -At the moment, it's during the first pass that the maptrack flags are -cleared, but the second pass that the maptrack entry is freed. - -Unfortunately this allows the following race, which results in a -double-free: - - A: (pass 1) clear host_map - B: (pass 1) clear device_map - A: (pass 2) See that maptrack entry has no mappings, free it - B: (pass 2) See that maptrack entry has no mappings, free it # - -Unfortunately, unlike the active entry pinning update, we can't simply -move the maptrack flag changes to the second half, because the -maptrack flags are used to determine if iommu entries need to be -added: a domain's iommu must never have fewer permissions than the -maptrack flags indicate, or a subsequent map_grant_ref() might fail to -add the necessary iommu entries. - -Instead, free the maptrack entry in the first pass if there are no -further mappings. - -This is part of XSA-218. - -Reported-by: Jan Beulich -Signed-off-by: George Dunlap -Signed-off-by: Jan Beulich ---- - xen/common/grant_table.c | 79 +++++++++++++++++++++++++++++++++--------------- - 1 file changed, 54 insertions(+), 25 deletions(-) - -diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c -index cfc483f..81a1a8b 100644 ---- a/xen/common/grant_table.c -+++ b/xen/common/grant_table.c -@@ -98,8 +98,8 @@ struct gnttab_unmap_common { - /* Shared state beteen *_unmap and *_unmap_complete */ - u16 flags; - unsigned long frame; -- struct grant_mapping *map; - struct domain *rd; -+ grant_ref_t ref; - }; - - /* Number of unmap operations that are done between each tlb flush */ -@@ -1079,6 +1079,8 @@ __gnttab_unmap_common( - struct grant_table *lgt, *rgt; - struct active_grant_entry *act; - s16 rc = 0; -+ struct grant_mapping *map; -+ bool_t put_handle = 0; - - ld = current->domain; - lgt = ld->grant_table; -@@ -1092,11 +1094,11 @@ __gnttab_unmap_common( - return; - } - -- op->map = &maptrack_entry(lgt, op->handle); -+ map = &maptrack_entry(lgt, op->handle); - - grant_read_lock(lgt); - -- if ( unlikely(!read_atomic(&op->map->flags)) ) -+ if ( unlikely(!read_atomic(&map->flags)) ) - { - grant_read_unlock(lgt); - gdprintk(XENLOG_INFO, "Zero flags for handle (%d).\n", op->handle); -@@ -1104,7 +1106,7 @@ __gnttab_unmap_common( - return; - } - -- dom = op->map->domid; -+ dom = map->domid; - grant_read_unlock(lgt); - - if ( unlikely((rd = rcu_lock_domain_by_id(dom)) == NULL) ) -@@ -1129,16 +1131,43 @@ __gnttab_unmap_common( - - grant_read_lock(rgt); - -- op->flags = read_atomic(&op->map->flags); -- if ( unlikely(!op->flags) || unlikely(op->map->domid != dom) ) -+ op->rd = rd; -+ op->ref = map->ref; -+ -+ /* -+ * We can't assume there was no racing unmap for this maptrack entry, -+ * and hence we can't assume map->ref is valid for rd. While the checks -+ * below (with the active entry lock held) will reject any such racing -+ * requests, we still need to make sure we don't attempt to acquire an -+ * invalid lock. -+ */ -+ smp_rmb(); -+ if ( unlikely(op->ref >= nr_grant_entries(rgt)) ) - { -- gdprintk(XENLOG_WARNING, "Unstable handle %u\n", op->handle); -+ gdprintk(XENLOG_WARNING, "Unstable handle %#x\n", op->handle); - rc = GNTST_bad_handle; -- goto unmap_out; -+ goto unlock_out; - } - -- op->rd = rd; -- act = active_entry_acquire(rgt, op->map->ref); -+ act = active_entry_acquire(rgt, op->ref); -+ -+ /* -+ * Note that we (ab)use the active entry lock here to protect against -+ * multiple unmaps of the same mapping here. We don't want to hold lgt's -+ * lock, and we only hold rgt's lock for reading (but the latter wouldn't -+ * be the right one anyway). Hence the easiest is to rely on a lock we -+ * hold anyway; see docs/misc/grant-tables.txt's "Locking" section. -+ */ -+ -+ op->flags = read_atomic(&map->flags); -+ smp_rmb(); -+ if ( unlikely(!op->flags) || unlikely(map->domid != dom) || -+ unlikely(map->ref != op->ref) ) -+ { -+ gdprintk(XENLOG_WARNING, "Unstable handle %#x\n", op->handle); -+ rc = GNTST_bad_handle; -+ goto act_release_out; -+ } - - if ( op->frame == 0 ) - { -@@ -1151,7 +1180,7 @@ __gnttab_unmap_common( - "Bad frame number doesn't match gntref. (%lx != %lx)\n", - op->frame, act->frame); - -- op->map->flags &= ~GNTMAP_device_map; -+ map->flags &= ~GNTMAP_device_map; - } - - if ( (op->host_addr != 0) && (op->flags & GNTMAP_host_map) ) -@@ -1161,14 +1190,23 @@ __gnttab_unmap_common( - op->flags)) < 0 ) - goto act_release_out; - -- op->map->flags &= ~GNTMAP_host_map; -+ map->flags &= ~GNTMAP_host_map; -+ } -+ -+ if ( !(map->flags & (GNTMAP_device_map|GNTMAP_host_map)) ) -+ { -+ map->flags = 0; -+ put_handle = 1; - } - - act_release_out: - active_entry_release(act); -- unmap_out: -+ unlock_out: - grant_read_unlock(rgt); - -+ if ( put_handle ) -+ put_maptrack_handle(lgt, op->handle); -+ - if ( rc == GNTST_okay && gnttab_need_iommu_mapping(ld) ) - { - unsigned int kind; -@@ -1205,7 +1243,6 @@ __gnttab_unmap_common_complete(struct gnttab_unmap_common *op) - grant_entry_header_t *sha; - struct page_info *pg; - uint16_t *status; -- bool_t put_handle = 0; - - if ( rd == NULL ) - { -@@ -1226,13 +1263,13 @@ __gnttab_unmap_common_complete(struct gnttab_unmap_common *op) - if ( rgt->gt_version == 0 ) - goto unlock_out; - -- act = active_entry_acquire(rgt, op->map->ref); -- sha = shared_entry_header(rgt, op->map->ref); -+ act = active_entry_acquire(rgt, op->ref); -+ sha = shared_entry_header(rgt, op->ref); - - if ( rgt->gt_version == 1 ) - status = &sha->flags; - else -- status = &status_entry(rgt, op->map->ref); -+ status = &status_entry(rgt, op->ref); - - if ( unlikely(op->frame != act->frame) ) - { -@@ -1289,9 +1326,6 @@ __gnttab_unmap_common_complete(struct gnttab_unmap_common *op) - act->pin -= GNTPIN_hstw_inc; - } - -- if ( (op->map->flags & (GNTMAP_device_map|GNTMAP_host_map)) == 0 ) -- put_handle = 1; -- - if ( ((act->pin & (GNTPIN_devw_mask|GNTPIN_hstw_mask)) == 0) && - !(op->flags & GNTMAP_readonly) ) - gnttab_clear_flag(_GTF_writing, status); -@@ -1304,11 +1338,6 @@ __gnttab_unmap_common_complete(struct gnttab_unmap_common *op) - unlock_out: - grant_read_unlock(rgt); - -- if ( put_handle ) -- { -- op->map->flags = 0; -- put_maptrack_handle(ld->grant_table, op->handle); -- } - rcu_unlock_domain(rd); - } - --- -2.1.4 - Property changes on: head/emulators/xen-kernel/files/0003-gnttab-Avoid-potential-double-put-of-maptrack-entry.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/0003-gnttab-correct-logic-to-get-page-references-during-m.patch =================================================================== --- head/emulators/xen-kernel/files/0003-gnttab-correct-logic-to-get-page-references-during-m.patch (revision 475253) +++ head/emulators/xen-kernel/files/0003-gnttab-correct-logic-to-get-page-references-during-m.patch (nonexistent) @@ -1,186 +0,0 @@ -From 5d491e3cf32ff03552db9d66e842964fec06dcd4 Mon Sep 17 00:00:00 2001 -From: George Dunlap -Date: Fri, 2 Jun 2017 15:21:27 +0100 -Subject: [PATCH 3/4] gnttab: correct logic to get page references during map - requests - -The rules for reference counting are somewhat complicated: - -* Each of GNTTAB_host_map and GNTTAB_device_map need their own -reference count - -* If the mapping is writeable: - - GNTTAB_host_map needs a type count under only some conditions - - GNTTAB_device_map always needs a type count - -If the mapping succeeds, we need to keep all of these; if the mapping -fails, we need to release whatever references we have acquired so far. - -Additionally, the code that does a lot of this calculation "inherits" -a reference as part of the process of finding out who the owner is. - -Finally, if the grant is mapped as writeable (without the -GNTMAP_readonly flag), but the hypervisor cannot grab a -PGT_writeable_page type, the entire operation should fail. - -Unfortunately, the current code has several logic holes: - -* If a grant is mapped only GNTTAB_device_map, and with a writeable - mapping, but in conditions where a *host* type count is not - necessary, the code will fail to grab the necessary type count. - -* If a grant is mapped both GNTTAB_device_map and GNTTAB_host_map, - with a writeable mapping, in conditions where the host type count is - not necessary, *and* where the page cannot be changed to type - PGT_writeable, the condition will not be detected. - -In both cases, this means that on success, the type count will be -erroneously reduced when the grant is unmapped. In the second case, -the type count will be erroneously reduced on the failure path as -well. (In the first case the failure path logic has the same hole -as the reference grabbing logic.) - -Additionally, the return value of get_page() is not checked; but this -may fail even if the first get_page() succeeded due to a reference -counting overflow. - -First of all, simplify the restoration logic by explicitly counting -the reference and type references acquired. - -Consider each mapping type separately, explicitly marking the -'incoming' reference as used so we know when we need to grab a second -one. - -Finally, always check the return value of get_page[_type]() and go to -the failure path if appropriate. - -This is part of XSA-224. - -Reported-by: Jan Beulich -Signed-off-by: George Dunlap -Signed-off-by: Jan Beulich ---- - xen/common/grant_table.c | 58 +++++++++++++++++++++++++++--------------------- - 1 file changed, 33 insertions(+), 25 deletions(-) - -diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c -index 452538e..5e92e2c 100644 ---- a/xen/common/grant_table.c -+++ b/xen/common/grant_table.c -@@ -758,12 +758,12 @@ __gnttab_map_grant_ref( - struct grant_table *lgt, *rgt; - struct vcpu *led; - int handle; -- unsigned long frame = 0, nr_gets = 0; -+ unsigned long frame = 0; - struct page_info *pg = NULL; - int rc = GNTST_okay; - u32 old_pin; - u32 act_pin; -- unsigned int cache_flags; -+ unsigned int cache_flags, refcnt = 0, typecnt = 0; - struct active_grant_entry *act = NULL; - struct grant_mapping *mt; - grant_entry_header_t *shah; -@@ -889,11 +889,17 @@ __gnttab_map_grant_ref( - else - owner = page_get_owner(pg); - -+ if ( owner ) -+ refcnt++; -+ - if ( !pg || (owner == dom_io) ) - { - /* Only needed the reference to confirm dom_io ownership. */ - if ( pg ) -+ { - put_page(pg); -+ refcnt--; -+ } - - if ( paging_mode_external(ld) ) - { -@@ -921,27 +927,38 @@ __gnttab_map_grant_ref( - } - else if ( owner == rd || owner == dom_cow ) - { -- if ( gnttab_host_mapping_get_page_type(op, ld, rd) ) -+ if ( (op->flags & GNTMAP_device_map) && !(op->flags & GNTMAP_readonly) ) - { - if ( (owner == dom_cow) || - !get_page_type(pg, PGT_writable_page) ) - goto could_not_pin; -+ typecnt++; - } - -- nr_gets++; - if ( op->flags & GNTMAP_host_map ) - { -- rc = create_grant_host_mapping(op->host_addr, frame, op->flags, 0); -- if ( rc != GNTST_okay ) -- goto undo_out; -- -+ /* -+ * Only need to grab another reference if device_map claimed -+ * the other one. -+ */ - if ( op->flags & GNTMAP_device_map ) - { -- nr_gets++; -- (void)get_page(pg, rd); -- if ( !(op->flags & GNTMAP_readonly) ) -- get_page_type(pg, PGT_writable_page); -+ if ( !get_page(pg, rd) ) -+ goto could_not_pin; -+ refcnt++; -+ } -+ -+ if ( gnttab_host_mapping_get_page_type(op, ld, rd) ) -+ { -+ if ( (owner == dom_cow) || -+ !get_page_type(pg, PGT_writable_page) ) -+ goto could_not_pin; -+ typecnt++; - } -+ -+ rc = create_grant_host_mapping(op->host_addr, frame, op->flags, 0); -+ if ( rc != GNTST_okay ) -+ goto undo_out; - } - } - else -@@ -950,8 +967,6 @@ __gnttab_map_grant_ref( - if ( !rd->is_dying ) - gdprintk(XENLOG_WARNING, "Could not pin grant frame %lx\n", - frame); -- if ( owner != NULL ) -- put_page(pg); - rc = GNTST_general_error; - goto undo_out; - } -@@ -1014,18 +1029,11 @@ __gnttab_map_grant_ref( - return; - - undo_out: -- if ( nr_gets > 1 ) -- { -- if ( !(op->flags & GNTMAP_readonly) ) -- put_page_type(pg); -- put_page(pg); -- } -- if ( nr_gets > 0 ) -- { -- if ( gnttab_host_mapping_get_page_type(op, ld, rd) ) -- put_page_type(pg); -+ while ( typecnt-- ) -+ put_page_type(pg); -+ -+ while ( refcnt-- ) - put_page(pg); -- } - - grant_read_lock(rgt); - --- -2.1.4 - Property changes on: head/emulators/xen-kernel/files/0003-gnttab-correct-logic-to-get-page-references-during-m.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa243-4.7.patch =================================================================== --- head/emulators/xen-kernel/files/xsa243-4.7.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa243-4.7.patch (nonexistent) @@ -1,93 +0,0 @@ -From: Andrew Cooper -Subject: x86/shadow: Don't create self-linear shadow mappings for 4-level translated guests - -When initially creating a monitor table for 4-level translated guests, don't -install a shadow-linear mapping. This mapping is actually self-linear, and -trips up the writeable heuristic logic into following Xen's mappings, not the -guests' shadows it was expecting to follow. - -A consequence of this is that sh_guess_wrmap() needs to cope with there being -no shadow-linear mapping present, which in practice occurs once each time a -vcpu switches to 4-level paging from a different paging mode. - -An appropriate shadow-linear slot will be inserted into the monitor table -either while constructing lower level monitor tables, or by sh_update_cr3(). - -While fixing this, clarify the safety of the other mappings. Despite -appearing unsafe, it is correct to create a guest-linear mapping for -translated domains; this is self-linear and doesn't point into the translated -domain. Drop a dead clause for translate != external guests. - -This is XSA-243. - -Signed-off-by: Andrew Cooper -Acked-by: Tim Deegan - -diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.c -index 428be37..c83932f 100644 ---- a/xen/arch/x86/mm/shadow/multi.c -+++ b/xen/arch/x86/mm/shadow/multi.c -@@ -1472,26 +1472,38 @@ void sh_install_xen_entries_in_l4(struct domain *d, mfn_t gl4mfn, mfn_t sl4mfn) - sl4e[shadow_l4_table_offset(RO_MPT_VIRT_START)] = shadow_l4e_empty(); - } - -- /* Shadow linear mapping for 4-level shadows. N.B. for 3-level -- * shadows on 64-bit xen, this linear mapping is later replaced by the -- * monitor pagetable structure, which is built in make_monitor_table -- * and maintained by sh_update_linear_entries. */ -- sl4e[shadow_l4_table_offset(SH_LINEAR_PT_VIRT_START)] = -- shadow_l4e_from_mfn(sl4mfn, __PAGE_HYPERVISOR); -- -- /* Self linear mapping. */ -- if ( shadow_mode_translate(d) && !shadow_mode_external(d) ) -+ /* -+ * Linear mapping slots: -+ * -+ * Calling this function with gl4mfn == sl4mfn is used to construct a -+ * monitor table for translated domains. In this case, gl4mfn forms the -+ * self-linear mapping (i.e. not pointing into the translated domain), and -+ * the shadow-linear slot is skipped. The shadow-linear slot is either -+ * filled when constructing lower level monitor tables, or via -+ * sh_update_cr3() for 4-level guests. -+ * -+ * Calling this function with gl4mfn != sl4mfn is used for non-translated -+ * guests, where the shadow-linear slot is actually self-linear, and the -+ * guest-linear slot points into the guests view of its pagetables. -+ */ -+ if ( shadow_mode_translate(d) ) - { -- // linear tables may not be used with translated PV guests -- sl4e[shadow_l4_table_offset(LINEAR_PT_VIRT_START)] = -+ ASSERT(mfn_x(gl4mfn) == mfn_x(sl4mfn)); -+ -+ sl4e[shadow_l4_table_offset(SH_LINEAR_PT_VIRT_START)] = - shadow_l4e_empty(); - } - else - { -- sl4e[shadow_l4_table_offset(LINEAR_PT_VIRT_START)] = -- shadow_l4e_from_mfn(gl4mfn, __PAGE_HYPERVISOR); -+ ASSERT(mfn_x(gl4mfn) != mfn_x(sl4mfn)); -+ -+ sl4e[shadow_l4_table_offset(SH_LINEAR_PT_VIRT_START)] = -+ shadow_l4e_from_mfn(sl4mfn, __PAGE_HYPERVISOR); - } - -+ sl4e[shadow_l4_table_offset(LINEAR_PT_VIRT_START)] = -+ shadow_l4e_from_mfn(gl4mfn, __PAGE_HYPERVISOR); -+ - unmap_domain_page(sl4e); - } - #endif -@@ -4293,6 +4305,11 @@ static int sh_guess_wrmap(struct vcpu *v, unsigned long vaddr, mfn_t gmfn) - - /* Carefully look in the shadow linear map for the l1e we expect */ - #if SHADOW_PAGING_LEVELS >= 4 -+ /* Is a shadow linear map is installed in the first place? */ -+ sl4p = v->arch.paging.shadow.guest_vtable; -+ sl4p += shadow_l4_table_offset(SH_LINEAR_PT_VIRT_START); -+ if ( !(shadow_l4e_get_flags(*sl4p) & _PAGE_PRESENT) ) -+ return 0; - sl4p = sh_linear_l4_table(v) + shadow_l4_linear_offset(vaddr); - if ( !(shadow_l4e_get_flags(*sl4p) & _PAGE_PRESENT) ) - return 0; Property changes on: head/emulators/xen-kernel/files/xsa243-4.7.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa242-4.9.patch =================================================================== --- head/emulators/xen-kernel/files/xsa242-4.9.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa242-4.9.patch (nonexistent) @@ -1,43 +0,0 @@ -From: Jan Beulich -Subject: x86: don't allow page_unlock() to drop the last type reference - -Only _put_page_type() does the necessary cleanup, and hence not all -domain pages can be released during guest cleanup (leaving around -zombie domains) if we get this wrong. - -This is XSA-242. - -Signed-off-by: Jan Beulich - ---- a/xen/arch/x86/mm.c -+++ b/xen/arch/x86/mm.c -@@ -1923,7 +1923,11 @@ void page_unlock(struct page_info *page) - - do { - x = y; -+ ASSERT((x & PGT_count_mask) && (x & PGT_locked)); -+ - nx = x - (1 | PGT_locked); -+ /* We must not drop the last reference here. */ -+ ASSERT(nx & PGT_count_mask); - } while ( (y = cmpxchg(&page->u.inuse.type_info, x, nx)) != x ); - } - -@@ -2611,6 +2615,17 @@ static int _put_page_type(struct page_in - (page->count_info & PGC_page_table)) ) - page_set_tlbflush_timestamp(page); - } -+ else if ( unlikely((nx & (PGT_locked | PGT_count_mask)) == -+ (PGT_locked | 1)) ) -+ { -+ /* -+ * We must not drop the second to last reference when the page is -+ * locked, as page_unlock() doesn't do any cleanup of the type. -+ */ -+ cpu_relax(); -+ y = page->u.inuse.type_info; -+ continue; -+ } - - if ( likely((y = cmpxchg(&page->u.inuse.type_info, x, nx)) == x) ) - break; Property changes on: head/emulators/xen-kernel/files/xsa242-4.9.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa241-4.8.patch =================================================================== --- head/emulators/xen-kernel/files/xsa241-4.8.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa241-4.8.patch (nonexistent) @@ -1,120 +0,0 @@ -x86: don't store possibly stale TLB flush time stamp - -While the timing window is extremely narrow, it is theoretically -possible for an update to the TLB flush clock and a subsequent flush -IPI to happen between the read and write parts of the update of the -per-page stamp. Exclude this possibility by disabling interrupts -across the update, preventing the IPI to be serviced in the middle. - -This is XSA-241. - -Reported-by: Jann Horn -Suggested-by: George Dunlap -Signed-off-by: Jan Beulich -Reviewed-by: George Dunlap - ---- a/xen/arch/arm/smp.c -+++ b/xen/arch/arm/smp.c -@@ -1,4 +1,5 @@ - #include -+#include - #include - #include - #include ---- a/xen/arch/x86/mm.c -+++ b/xen/arch/x86/mm.c -@@ -2524,7 +2524,7 @@ static int _put_final_page_type(struct p - */ - if ( !(shadow_mode_enabled(page_get_owner(page)) && - (page->count_info & PGC_page_table)) ) -- page->tlbflush_timestamp = tlbflush_current_time(); -+ page_set_tlbflush_timestamp(page); - wmb(); - page->u.inuse.type_info--; - } -@@ -2534,7 +2534,7 @@ static int _put_final_page_type(struct p - (PGT_count_mask|PGT_validated|PGT_partial)) == 1); - if ( !(shadow_mode_enabled(page_get_owner(page)) && - (page->count_info & PGC_page_table)) ) -- page->tlbflush_timestamp = tlbflush_current_time(); -+ page_set_tlbflush_timestamp(page); - wmb(); - page->u.inuse.type_info |= PGT_validated; - } -@@ -2588,7 +2588,7 @@ static int _put_page_type(struct page_in - if ( ptpg && PGT_type_equal(x, ptpg->u.inuse.type_info) ) - { - /* -- * page_set_tlbflush_timestamp() accesses the same union -+ * set_tlbflush_timestamp() accesses the same union - * linear_pt_count lives in. Unvalidated page table pages, - * however, should occur during domain destruction only - * anyway. Updating of linear_pt_count luckily is not -@@ -2609,7 +2609,7 @@ static int _put_page_type(struct page_in - */ - if ( !(shadow_mode_enabled(page_get_owner(page)) && - (page->count_info & PGC_page_table)) ) -- page->tlbflush_timestamp = tlbflush_current_time(); -+ page_set_tlbflush_timestamp(page); - } - - if ( likely((y = cmpxchg(&page->u.inuse.type_info, x, nx)) == x) ) ---- a/xen/arch/x86/mm/shadow/common.c -+++ b/xen/arch/x86/mm/shadow/common.c -@@ -1464,7 +1464,7 @@ void shadow_free(struct domain *d, mfn_t - * TLBs when we reuse the page. Because the destructors leave the - * contents of the pages in place, we can delay TLB flushes until - * just before the allocator hands the page out again. */ -- sp->tlbflush_timestamp = tlbflush_current_time(); -+ page_set_tlbflush_timestamp(sp); - perfc_decr(shadow_alloc_count); - page_list_add_tail(sp, &d->arch.paging.shadow.freelist); - sp = next; ---- a/xen/common/page_alloc.c -+++ b/xen/common/page_alloc.c -@@ -960,7 +960,7 @@ static void free_heap_pages( - /* If a page has no owner it will need no safety TLB flush. */ - pg[i].u.free.need_tlbflush = (page_get_owner(&pg[i]) != NULL); - if ( pg[i].u.free.need_tlbflush ) -- pg[i].tlbflush_timestamp = tlbflush_current_time(); -+ page_set_tlbflush_timestamp(&pg[i]); - - /* This page is not a guest frame any more. */ - page_set_owner(&pg[i], NULL); /* set_gpfn_from_mfn snoops pg owner */ ---- a/xen/include/asm-arm/flushtlb.h -+++ b/xen/include/asm-arm/flushtlb.h -@@ -12,6 +12,11 @@ static inline void tlbflush_filter(cpuma - - #define tlbflush_current_time() (0) - -+static inline void page_set_tlbflush_timestamp(struct page_info *page) -+{ -+ page->tlbflush_timestamp = tlbflush_current_time(); -+} -+ - #if defined(CONFIG_ARM_32) - # include - #elif defined(CONFIG_ARM_64) ---- a/xen/include/asm-x86/flushtlb.h -+++ b/xen/include/asm-x86/flushtlb.h -@@ -23,6 +23,20 @@ DECLARE_PER_CPU(u32, tlbflush_time); - - #define tlbflush_current_time() tlbflush_clock - -+static inline void page_set_tlbflush_timestamp(struct page_info *page) -+{ -+ /* -+ * Prevent storing a stale time stamp, which could happen if an update -+ * to tlbflush_clock plus a subsequent flush IPI happen between the -+ * reading of tlbflush_clock and the writing of the struct page_info -+ * field. -+ */ -+ ASSERT(local_irq_is_enabled()); -+ local_irq_disable(); -+ page->tlbflush_timestamp = tlbflush_current_time(); -+ local_irq_enable(); -+} -+ - /* - * @cpu_stamp is the timestamp at last TLB flush for the CPU we are testing. - * @lastuse_stamp is a timestamp taken when the PFN we are testing was last Property changes on: head/emulators/xen-kernel/files/xsa241-4.8.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa244-4.7.patch =================================================================== --- head/emulators/xen-kernel/files/xsa244-4.7.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa244-4.7.patch (nonexistent) @@ -1,51 +0,0 @@ -From: Andrew Cooper -Subject: x86/cpu: fix IST handling during PCPU bringup - -Clear IST references in newly allocated IDTs. Nothing good will come of -having them set before the TSS is suitably constructed (although the chances -of the CPU surviving such an IST interrupt/exception is extremely slim). - -Uniformly set the IST references after the TSS is in place. This fixes an -issue on AMD hardware, where onlining a PCPU while PCPU0 is in HVM context -will cause IST_NONE to be copied into the new IDT, making that PCPU vulnerable -to privilege escalation from PV guests until it subsequently schedules an HVM -guest. - -This is XSA-244. - -Signed-off-by: Andrew Cooper -Reviewed-by: Jan Beulich - ---- a/xen/arch/x86/cpu/common.c -+++ b/xen/arch/x86/cpu/common.c -@@ -617,6 +617,7 @@ void __init early_cpu_init(void) - * - Sets up TSS with stack pointers, including ISTs - * - Inserts TSS selector into regular and compat GDTs - * - Loads GDT, IDT, TR then null LDT -+ * - Sets up IST references in the IDT - */ - void load_system_tables(void) - { -@@ -663,6 +664,10 @@ void load_system_tables(void) - asm volatile ("lidt %0" : : "m" (idtr) ); - asm volatile ("ltr %w0" : : "rm" (TSS_ENTRY << 3) ); - asm volatile ("lldt %w0" : : "rm" (0) ); -+ -+ set_ist(&idt_tables[cpu][TRAP_double_fault], IST_DF); -+ set_ist(&idt_tables[cpu][TRAP_nmi], IST_NMI); -+ set_ist(&idt_tables[cpu][TRAP_machine_check], IST_MCE); - } - - /* ---- a/xen/arch/x86/smpboot.c -+++ b/xen/arch/x86/smpboot.c -@@ -715,6 +715,9 @@ static int cpu_smpboot_alloc(unsigned in - if ( idt_tables[cpu] == NULL ) - goto oom; - memcpy(idt_tables[cpu], idt_table, IDT_ENTRIES * sizeof(idt_entry_t)); -+ set_ist(&idt_tables[cpu][TRAP_double_fault], IST_NONE); -+ set_ist(&idt_tables[cpu][TRAP_nmi], IST_NONE); -+ set_ist(&idt_tables[cpu][TRAP_machine_check], IST_NONE); - - for ( stub_page = 0, i = cpu & ~(STUBS_PER_PAGE - 1); - i < nr_cpu_ids && i <= (cpu | (STUBS_PER_PAGE - 1)); ++i ) Property changes on: head/emulators/xen-kernel/files/xsa244-4.7.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa246-4.7.patch =================================================================== --- head/emulators/xen-kernel/files/xsa246-4.7.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa246-4.7.patch (nonexistent) @@ -1,74 +0,0 @@ -From: Julien Grall -Subject: x86/pod: prevent infinite loop when shattering large pages - -When populating pages, the PoD may need to split large ones using -p2m_set_entry and request the caller to retry (see ept_get_entry for -instance). - -p2m_set_entry may fail to shatter if it is not possible to allocate -memory for the new page table. However, the error is not propagated -resulting to the callers to retry infinitely the PoD. - -Prevent the infinite loop by return false when it is not possible to -shatter the large mapping. - -This is XSA-246. - -Signed-off-by: Julien Grall -Signed-off-by: Jan Beulich -Reviewed-by: George Dunlap - ---- a/xen/arch/x86/mm/p2m-pod.c -+++ b/xen/arch/x86/mm/p2m-pod.c -@@ -1073,9 +1073,8 @@ p2m_pod_demand_populate(struct p2m_domai - * NOTE: In a fine-grained p2m locking scenario this operation - * may need to promote its locking from gfn->1g superpage - */ -- p2m_set_entry(p2m, gfn_aligned, _mfn(INVALID_MFN), PAGE_ORDER_2M, -- p2m_populate_on_demand, p2m->default_access); -- return 0; -+ return p2m_set_entry(p2m, gfn_aligned, _mfn(INVALID_MFN), PAGE_ORDER_2M, -+ p2m_populate_on_demand, p2m->default_access); - } - - /* Only reclaim if we're in actual need of more cache. */ -@@ -1106,8 +1105,12 @@ p2m_pod_demand_populate(struct p2m_domai - - gfn_aligned = (gfn >> order) << order; - -- p2m_set_entry(p2m, gfn_aligned, mfn, order, p2m_ram_rw, -- p2m->default_access); -+ if ( p2m_set_entry(p2m, gfn_aligned, mfn, order, p2m_ram_rw, -+ p2m->default_access) ) -+ { -+ p2m_pod_cache_add(p2m, p, order); -+ goto out_fail; -+ } - - for( i = 0; i < (1UL << order); i++ ) - { -@@ -1152,13 +1155,18 @@ remap_and_retry: - BUG_ON(order != PAGE_ORDER_2M); - pod_unlock(p2m); - -- /* Remap this 2-meg region in singleton chunks */ -- /* NOTE: In a p2m fine-grained lock scenario this might -- * need promoting the gfn lock from gfn->2M superpage */ -+ /* -+ * Remap this 2-meg region in singleton chunks. See the comment on the -+ * 1G page splitting path above for why a single call suffices. -+ * -+ * NOTE: In a p2m fine-grained lock scenario this might -+ * need promoting the gfn lock from gfn->2M superpage. -+ */ - gfn_aligned = (gfn>>order)<default_access); -+ if ( p2m_set_entry(p2m, gfn_aligned, _mfn(INVALID_MFN), PAGE_ORDER_4K, -+ p2m_populate_on_demand, p2m->default_access) ) -+ return -1; -+ - if ( tb_init_done ) - { - struct { Property changes on: head/emulators/xen-kernel/files/xsa246-4.7.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa248-4.8.patch =================================================================== --- head/emulators/xen-kernel/files/xsa248-4.8.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa248-4.8.patch (nonexistent) @@ -1,162 +0,0 @@ -From: Jan Beulich -Subject: x86/mm: don't wrongly set page ownership - -PV domains can obtain mappings of any pages owned by the correct domain, -including ones that aren't actually assigned as "normal" RAM, but used -by Xen internally. At the moment such "internal" pages marked as owned -by a guest include pages used to track logdirty bits, as well as p2m -pages and the "unpaged pagetable" for HVM guests. Since the PV memory -management and shadow code conflict in their use of struct page_info -fields, and since shadow code is being used for log-dirty handling for -PV domains, pages coming from the shadow pool must, for PV domains, not -have the domain set as their owner. - -While the change could be done conditionally for just the PV case in -shadow code, do it unconditionally (and for consistency also for HAP), -just to be on the safe side. - -There's one special case though for shadow code: The page table used for -running a HVM guest in unpaged mode is subject to get_page() (in -set_shadow_status()) and hence must have its owner set. - -This is XSA-248. - -Signed-off-by: Jan Beulich -Reviewed-by: Tim Deegan -Reviewed-by: George Dunlap - ---- a/xen/arch/x86/mm/hap/hap.c -+++ b/xen/arch/x86/mm/hap/hap.c -@@ -283,8 +283,7 @@ static struct page_info *hap_alloc_p2m_p - { - d->arch.paging.hap.total_pages--; - d->arch.paging.hap.p2m_pages++; -- page_set_owner(pg, d); -- pg->count_info |= 1; -+ ASSERT(!page_get_owner(pg) && !(pg->count_info & PGC_count_mask)); - } - else if ( !d->arch.paging.p2m_alloc_failed ) - { -@@ -299,21 +298,23 @@ static struct page_info *hap_alloc_p2m_p - - static void hap_free_p2m_page(struct domain *d, struct page_info *pg) - { -+ struct domain *owner = page_get_owner(pg); -+ - /* This is called both from the p2m code (which never holds the - * paging lock) and the log-dirty code (which always does). */ - paging_lock_recursive(d); - -- ASSERT(page_get_owner(pg) == d); -- /* Should have just the one ref we gave it in alloc_p2m_page() */ -- if ( (pg->count_info & PGC_count_mask) != 1 ) { -- HAP_ERROR("Odd p2m page %p count c=%#lx t=%"PRtype_info"\n", -- pg, pg->count_info, pg->u.inuse.type_info); -+ /* Should still have no owner and count zero. */ -+ if ( owner || (pg->count_info & PGC_count_mask) ) -+ { -+ HAP_ERROR("d%d: Odd p2m page %"PRI_mfn" d=%d c=%lx t=%"PRtype_info"\n", -+ d->domain_id, mfn_x(page_to_mfn(pg)), -+ owner ? owner->domain_id : DOMID_INVALID, -+ pg->count_info, pg->u.inuse.type_info); - WARN(); -+ pg->count_info &= ~PGC_count_mask; -+ page_set_owner(pg, NULL); - } -- pg->count_info &= ~PGC_count_mask; -- /* Free should not decrement domain's total allocation, since -- * these pages were allocated without an owner. */ -- page_set_owner(pg, NULL); - d->arch.paging.hap.p2m_pages--; - d->arch.paging.hap.total_pages++; - hap_free(d, page_to_mfn(pg)); ---- a/xen/arch/x86/mm/shadow/common.c -+++ b/xen/arch/x86/mm/shadow/common.c -@@ -1573,32 +1573,29 @@ shadow_alloc_p2m_page(struct domain *d) - pg = mfn_to_page(shadow_alloc(d, SH_type_p2m_table, 0)); - d->arch.paging.shadow.p2m_pages++; - d->arch.paging.shadow.total_pages--; -+ ASSERT(!page_get_owner(pg) && !(pg->count_info & PGC_count_mask)); - - paging_unlock(d); - -- /* Unlike shadow pages, mark p2m pages as owned by the domain. -- * Marking the domain as the owner would normally allow the guest to -- * create mappings of these pages, but these p2m pages will never be -- * in the domain's guest-physical address space, and so that is not -- * believed to be a concern. */ -- page_set_owner(pg, d); -- pg->count_info |= 1; - return pg; - } - - static void - shadow_free_p2m_page(struct domain *d, struct page_info *pg) - { -- ASSERT(page_get_owner(pg) == d); -- /* Should have just the one ref we gave it in alloc_p2m_page() */ -- if ( (pg->count_info & PGC_count_mask) != 1 ) -+ struct domain *owner = page_get_owner(pg); -+ -+ /* Should still have no owner and count zero. */ -+ if ( owner || (pg->count_info & PGC_count_mask) ) - { -- SHADOW_ERROR("Odd p2m page count c=%#lx t=%"PRtype_info"\n", -+ SHADOW_ERROR("d%d: Odd p2m page %"PRI_mfn" d=%d c=%lx t=%"PRtype_info"\n", -+ d->domain_id, mfn_x(page_to_mfn(pg)), -+ owner ? owner->domain_id : DOMID_INVALID, - pg->count_info, pg->u.inuse.type_info); -+ pg->count_info &= ~PGC_count_mask; -+ page_set_owner(pg, NULL); - } -- pg->count_info &= ~PGC_count_mask; - pg->u.sh.type = SH_type_p2m_table; /* p2m code reuses type-info */ -- page_set_owner(pg, NULL); - - /* This is called both from the p2m code (which never holds the - * paging lock) and the log-dirty code (which always does). */ -@@ -3216,7 +3213,9 @@ int shadow_enable(struct domain *d, u32 - | _PAGE_PRESENT | _PAGE_RW | _PAGE_USER - | _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_PSE); - unmap_domain_page(e); -+ pg->count_info = 1; - pg->u.inuse.type_info = PGT_l2_page_table | 1 | PGT_validated; -+ page_set_owner(pg, d); - } - - paging_lock(d); -@@ -3254,7 +3253,11 @@ int shadow_enable(struct domain *d, u32 - if ( rv != 0 && !pagetable_is_null(p2m_get_pagetable(p2m)) ) - p2m_teardown(p2m); - if ( rv != 0 && pg != NULL ) -+ { -+ pg->count_info &= ~PGC_count_mask; -+ page_set_owner(pg, NULL); - shadow_free_p2m_page(d, pg); -+ } - domain_unpause(d); - return rv; - } -@@ -3363,7 +3366,22 @@ out: - - /* Must be called outside the lock */ - if ( unpaged_pagetable ) -+ { -+ if ( page_get_owner(unpaged_pagetable) == d && -+ (unpaged_pagetable->count_info & PGC_count_mask) == 1 ) -+ { -+ unpaged_pagetable->count_info &= ~PGC_count_mask; -+ page_set_owner(unpaged_pagetable, NULL); -+ } -+ /* Complain here in cases where shadow_free_p2m_page() won't. */ -+ else if ( !page_get_owner(unpaged_pagetable) && -+ !(unpaged_pagetable->count_info & PGC_count_mask) ) -+ SHADOW_ERROR("d%d: Odd unpaged pt %"PRI_mfn" c=%lx t=%"PRtype_info"\n", -+ d->domain_id, mfn_x(page_to_mfn(unpaged_pagetable)), -+ unpaged_pagetable->count_info, -+ unpaged_pagetable->u.inuse.type_info); - shadow_free_p2m_page(d, unpaged_pagetable); -+ } - } - - void shadow_final_teardown(struct domain *d) Property changes on: head/emulators/xen-kernel/files/xsa248-4.8.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa251-4.8.patch =================================================================== --- head/emulators/xen-kernel/files/xsa251-4.8.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa251-4.8.patch (nonexistent) @@ -1,21 +0,0 @@ -From: Jan Beulich -Subject: x86/paging: don't unconditionally BUG() on finding SHARED_M2P_ENTRY - -PV guests can fully control the values written into the P2M. - -This is XSA-251. - -Signed-off-by: Jan Beulich -Reviewed-by: Andrew Cooper - ---- a/xen/arch/x86/mm/paging.c -+++ b/xen/arch/x86/mm/paging.c -@@ -276,7 +276,7 @@ void paging_mark_pfn_dirty(struct domain - return; - - /* Shared MFNs should NEVER be marked dirty */ -- BUG_ON(SHARED_M2P(pfn)); -+ BUG_ON(paging_mode_translate(d) && SHARED_M2P(pfn)); - - /* - * Values with the MSB set denote MFNs that aren't really part of the Property changes on: head/emulators/xen-kernel/files/xsa251-4.8.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/0001-xen-logdirty-prevent-preemption-if-finished.patch =================================================================== --- head/emulators/xen-kernel/files/0001-xen-logdirty-prevent-preemption-if-finished.patch (revision 475253) +++ head/emulators/xen-kernel/files/0001-xen-logdirty-prevent-preemption-if-finished.patch (nonexistent) @@ -1,44 +0,0 @@ -From 7a0ed7f3c2dcb1f104b6f70223d48d8826aec7f2 Mon Sep 17 00:00:00 2001 -From: Roger Pau Monne -Date: Tue, 31 May 2016 16:07:26 +0200 -Subject: [PATCH 1/2] xen/logdirty: prevent preemption if finished -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -While working on PVH migration support I've realized that -paging_log_dirty_op sometimes restarts with sc->pages == pages, which means -there's no more work to do. Avoid this by adding a check in the preemption -points of the function. - -Signed-off-by: Roger Pau Monné ---- - xen/arch/x86/mm/paging.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c -index 8219bb6..ed94ff7 100644 ---- a/xen/arch/x86/mm/paging.c -+++ b/xen/arch/x86/mm/paging.c -@@ -519,7 +519,8 @@ static int paging_log_dirty_op(struct domain *d, - if ( l2 ) - unmap_domain_page(l2); - -- if ( i3 < LOGDIRTY_NODE_ENTRIES - 1 && hypercall_preempt_check() ) -+ if ( i3 < LOGDIRTY_NODE_ENTRIES - 1 && hypercall_preempt_check() && -+ sc->pages != pages ) - { - d->arch.paging.preempt.log_dirty.i4 = i4; - d->arch.paging.preempt.log_dirty.i3 = i3 + 1; -@@ -531,7 +532,7 @@ static int paging_log_dirty_op(struct domain *d, - unmap_domain_page(l3); - - if ( !rv && i4 < LOGDIRTY_NODE_ENTRIES - 1 && -- hypercall_preempt_check() ) -+ hypercall_preempt_check() && sc->pages != pages ) - { - d->arch.paging.preempt.log_dirty.i4 = i4 + 1; - d->arch.paging.preempt.log_dirty.i3 = 0; --- -2.7.4 (Apple Git-66) - Property changes on: head/emulators/xen-kernel/files/0001-xen-logdirty-prevent-preemption-if-finished.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Index: head/emulators/xen-kernel/files/0001-x86-Meltdown-band-aid-against-malicious-64-bit-PV-gu.patch =================================================================== --- head/emulators/xen-kernel/files/0001-x86-Meltdown-band-aid-against-malicious-64-bit-PV-gu.patch (revision 475253) +++ head/emulators/xen-kernel/files/0001-x86-Meltdown-band-aid-against-malicious-64-bit-PV-gu.patch (nonexistent) @@ -1,756 +0,0 @@ -From e19517a3355acaaa2ff83018bc41e7fd044161e5 Mon Sep 17 00:00:00 2001 -From: Jan Beulich -Date: Wed, 17 Jan 2018 17:24:12 +0100 -Subject: [PATCH 1/2] x86: Meltdown band-aid against malicious 64-bit PV guests - -This is a very simplistic change limiting the amount of memory a running -64-bit PV guest has mapped (and hence available for attacking): Only the -mappings of stack, IDT, and TSS are being cloned from the direct map -into per-CPU page tables. Guest controlled parts of the page tables are -being copied into those per-CPU page tables upon entry into the guest. -Cross-vCPU synchronization of top level page table entry changes is -being effected by forcing other active vCPU-s of the guest into the -hypervisor. - -The change to context_switch() isn't strictly necessary, but there's no -reason to keep switching page tables once a PV guest is being scheduled -out. - -This isn't providing full isolation yet, but it should be covering all -pieces of information exposure of which would otherwise require an XSA. - -There is certainly much room for improvement, especially of performance, -here - first and foremost suppressing all the negative effects on AMD -systems. But in the interest of backportability (including to really old -hypervisors, which may not even have alternative patching) any such is -being left out here. - -Signed-off-by: Jan Beulich -Reviewed-by: Andrew Cooper -master commit: 5784de3e2067ed73efc2fe42e62831e8ae7f46c4 -master date: 2018-01-16 17:49:03 +0100 ---- - xen/arch/x86/domain.c | 5 + - xen/arch/x86/mm.c | 17 ++++ - xen/arch/x86/smpboot.c | 198 +++++++++++++++++++++++++++++++++++++ - xen/arch/x86/x86_64/asm-offsets.c | 2 + - xen/arch/x86/x86_64/compat/entry.S | 11 +++ - xen/arch/x86/x86_64/entry.S | 149 +++++++++++++++++++++++++++- - xen/include/asm-x86/asm_defns.h | 30 ++++++ - xen/include/asm-x86/current.h | 12 +++ - xen/include/asm-x86/processor.h | 1 + - xen/include/asm-x86/x86_64/page.h | 5 +- - 10 files changed, 424 insertions(+), 6 deletions(-) - -diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c -index 6539b75fa7..3cf18f95b7 100644 ---- a/xen/arch/x86/domain.c -+++ b/xen/arch/x86/domain.c -@@ -1949,6 +1949,9 @@ static void paravirt_ctxt_switch_to(struct vcpu *v) - - switch_kernel_stack(v); - -+ this_cpu(root_pgt)[root_table_offset(PERDOMAIN_VIRT_START)] = -+ l4e_from_page(v->domain->arch.perdomain_l3_pg, __PAGE_HYPERVISOR_RW); -+ - cr4 = pv_guest_cr4_to_real_cr4(v); - if ( unlikely(cr4 != read_cr4()) ) - write_cr4(cr4); -@@ -2096,6 +2099,8 @@ void context_switch(struct vcpu *prev, struct vcpu *next) - - ASSERT(local_irq_is_enabled()); - -+ get_cpu_info()->xen_cr3 = 0; -+ - cpumask_copy(&dirty_mask, next->vcpu_dirty_cpumask); - /* Allow at most one CPU at a time to be dirty. */ - ASSERT(cpumask_weight(&dirty_mask) <= 1); -diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c -index 50f500c940..c9e4003989 100644 ---- a/xen/arch/x86/mm.c -+++ b/xen/arch/x86/mm.c -@@ -3857,6 +3857,7 @@ long do_mmu_update( - struct vcpu *curr = current, *v = curr; - struct domain *d = v->domain, *pt_owner = d, *pg_owner; - struct domain_mmap_cache mapcache; -+ bool_t sync_guest = 0; - uint32_t xsm_needed = 0; - uint32_t xsm_checked = 0; - int rc = put_old_guest_table(curr); -@@ -4005,6 +4006,8 @@ long do_mmu_update( - case PGT_l4_page_table: - rc = mod_l4_entry(va, l4e_from_intpte(req.val), mfn, - cmd == MMU_PT_UPDATE_PRESERVE_AD, v); -+ if ( !rc ) -+ sync_guest = 1; - break; - case PGT_writable_page: - perfc_incr(writable_mmu_updates); -@@ -4107,6 +4110,20 @@ long do_mmu_update( - - domain_mmap_cache_destroy(&mapcache); - -+ if ( sync_guest ) -+ { -+ /* -+ * Force other vCPU-s of the affected guest to pick up L4 entry -+ * changes (if any). Issue a flush IPI with empty operation mask to -+ * facilitate this (including ourselves waiting for the IPI to -+ * actually have arrived). Utilize the fact that FLUSH_VA_VALID is -+ * meaningless without FLUSH_CACHE, but will allow to pass the no-op -+ * check in flush_area_mask(). -+ */ -+ flush_area_mask(pt_owner->domain_dirty_cpumask, -+ ZERO_BLOCK_PTR, FLUSH_VA_VALID); -+ } -+ - perfc_add(num_page_updates, i); - - out: -diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c -index f9e4ee85ff..eaeec5acf0 100644 ---- a/xen/arch/x86/smpboot.c -+++ b/xen/arch/x86/smpboot.c -@@ -319,6 +319,9 @@ void start_secondary(void *unused) - */ - spin_debug_disable(); - -+ get_cpu_info()->xen_cr3 = 0; -+ get_cpu_info()->pv_cr3 = __pa(this_cpu(root_pgt)); -+ - load_system_tables(); - - /* Full exception support from here on in. */ -@@ -628,6 +631,187 @@ void cpu_exit_clear(unsigned int cpu) - set_cpu_state(CPU_STATE_DEAD); - } - -+static int clone_mapping(const void *ptr, root_pgentry_t *rpt) -+{ -+ unsigned long linear = (unsigned long)ptr, pfn; -+ unsigned int flags; -+ l3_pgentry_t *pl3e = l4e_to_l3e(idle_pg_table[root_table_offset(linear)]) + -+ l3_table_offset(linear); -+ l2_pgentry_t *pl2e; -+ l1_pgentry_t *pl1e; -+ -+ if ( linear < DIRECTMAP_VIRT_START ) -+ return 0; -+ -+ flags = l3e_get_flags(*pl3e); -+ ASSERT(flags & _PAGE_PRESENT); -+ if ( flags & _PAGE_PSE ) -+ { -+ pfn = (l3e_get_pfn(*pl3e) & ~((1UL << (2 * PAGETABLE_ORDER)) - 1)) | -+ (PFN_DOWN(linear) & ((1UL << (2 * PAGETABLE_ORDER)) - 1)); -+ flags &= ~_PAGE_PSE; -+ } -+ else -+ { -+ pl2e = l3e_to_l2e(*pl3e) + l2_table_offset(linear); -+ flags = l2e_get_flags(*pl2e); -+ ASSERT(flags & _PAGE_PRESENT); -+ if ( flags & _PAGE_PSE ) -+ { -+ pfn = (l2e_get_pfn(*pl2e) & ~((1UL << PAGETABLE_ORDER) - 1)) | -+ (PFN_DOWN(linear) & ((1UL << PAGETABLE_ORDER) - 1)); -+ flags &= ~_PAGE_PSE; -+ } -+ else -+ { -+ pl1e = l2e_to_l1e(*pl2e) + l1_table_offset(linear); -+ flags = l1e_get_flags(*pl1e); -+ if ( !(flags & _PAGE_PRESENT) ) -+ return 0; -+ pfn = l1e_get_pfn(*pl1e); -+ } -+ } -+ -+ if ( !(root_get_flags(rpt[root_table_offset(linear)]) & _PAGE_PRESENT) ) -+ { -+ pl3e = alloc_xen_pagetable(); -+ if ( !pl3e ) -+ return -ENOMEM; -+ clear_page(pl3e); -+ l4e_write(&rpt[root_table_offset(linear)], -+ l4e_from_paddr(__pa(pl3e), __PAGE_HYPERVISOR)); -+ } -+ else -+ pl3e = l4e_to_l3e(rpt[root_table_offset(linear)]); -+ -+ pl3e += l3_table_offset(linear); -+ -+ if ( !(l3e_get_flags(*pl3e) & _PAGE_PRESENT) ) -+ { -+ pl2e = alloc_xen_pagetable(); -+ if ( !pl2e ) -+ return -ENOMEM; -+ clear_page(pl2e); -+ l3e_write(pl3e, l3e_from_paddr(__pa(pl2e), __PAGE_HYPERVISOR)); -+ } -+ else -+ { -+ ASSERT(!(l3e_get_flags(*pl3e) & _PAGE_PSE)); -+ pl2e = l3e_to_l2e(*pl3e); -+ } -+ -+ pl2e += l2_table_offset(linear); -+ -+ if ( !(l2e_get_flags(*pl2e) & _PAGE_PRESENT) ) -+ { -+ pl1e = alloc_xen_pagetable(); -+ if ( !pl1e ) -+ return -ENOMEM; -+ clear_page(pl1e); -+ l2e_write(pl2e, l2e_from_paddr(__pa(pl1e), __PAGE_HYPERVISOR)); -+ } -+ else -+ { -+ ASSERT(!(l2e_get_flags(*pl2e) & _PAGE_PSE)); -+ pl1e = l2e_to_l1e(*pl2e); -+ } -+ -+ pl1e += l1_table_offset(linear); -+ -+ if ( l1e_get_flags(*pl1e) & _PAGE_PRESENT ) -+ { -+ ASSERT(l1e_get_pfn(*pl1e) == pfn); -+ ASSERT(l1e_get_flags(*pl1e) == flags); -+ } -+ else -+ l1e_write(pl1e, l1e_from_pfn(pfn, flags)); -+ -+ return 0; -+} -+ -+DEFINE_PER_CPU(root_pgentry_t *, root_pgt); -+ -+static int setup_cpu_root_pgt(unsigned int cpu) -+{ -+ root_pgentry_t *rpt = alloc_xen_pagetable(); -+ unsigned int off; -+ int rc; -+ -+ if ( !rpt ) -+ return -ENOMEM; -+ -+ clear_page(rpt); -+ per_cpu(root_pgt, cpu) = rpt; -+ -+ rpt[root_table_offset(RO_MPT_VIRT_START)] = -+ idle_pg_table[root_table_offset(RO_MPT_VIRT_START)]; -+ /* SH_LINEAR_PT inserted together with guest mappings. */ -+ /* PERDOMAIN inserted during context switch. */ -+ rpt[root_table_offset(XEN_VIRT_START)] = -+ idle_pg_table[root_table_offset(XEN_VIRT_START)]; -+ -+ /* Install direct map page table entries for stack, IDT, and TSS. */ -+ for ( off = rc = 0; !rc && off < STACK_SIZE; off += PAGE_SIZE ) -+ rc = clone_mapping(__va(__pa(stack_base[cpu])) + off, rpt); -+ -+ if ( !rc ) -+ rc = clone_mapping(idt_tables[cpu], rpt); -+ if ( !rc ) -+ rc = clone_mapping(&per_cpu(init_tss, cpu), rpt); -+ -+ return rc; -+} -+ -+static void cleanup_cpu_root_pgt(unsigned int cpu) -+{ -+ root_pgentry_t *rpt = per_cpu(root_pgt, cpu); -+ unsigned int r; -+ -+ if ( !rpt ) -+ return; -+ -+ per_cpu(root_pgt, cpu) = NULL; -+ -+ for ( r = root_table_offset(DIRECTMAP_VIRT_START); -+ r < root_table_offset(HYPERVISOR_VIRT_END); ++r ) -+ { -+ l3_pgentry_t *l3t; -+ unsigned int i3; -+ -+ if ( !(root_get_flags(rpt[r]) & _PAGE_PRESENT) ) -+ continue; -+ -+ l3t = l4e_to_l3e(rpt[r]); -+ -+ for ( i3 = 0; i3 < L3_PAGETABLE_ENTRIES; ++i3 ) -+ { -+ l2_pgentry_t *l2t; -+ unsigned int i2; -+ -+ if ( !(l3e_get_flags(l3t[i3]) & _PAGE_PRESENT) ) -+ continue; -+ -+ ASSERT(!(l3e_get_flags(l3t[i3]) & _PAGE_PSE)); -+ l2t = l3e_to_l2e(l3t[i3]); -+ -+ for ( i2 = 0; i2 < L2_PAGETABLE_ENTRIES; ++i2 ) -+ { -+ if ( !(l2e_get_flags(l2t[i2]) & _PAGE_PRESENT) ) -+ continue; -+ -+ ASSERT(!(l2e_get_flags(l2t[i2]) & _PAGE_PSE)); -+ free_xen_pagetable(l2e_to_l1e(l2t[i2])); -+ } -+ -+ free_xen_pagetable(l2t); -+ } -+ -+ free_xen_pagetable(l3t); -+ } -+ -+ free_xen_pagetable(rpt); -+} -+ - static void cpu_smpboot_free(unsigned int cpu) - { - unsigned int order, socket = cpu_to_socket(cpu); -@@ -664,6 +848,8 @@ static void cpu_smpboot_free(unsigned int cpu) - free_domheap_page(mfn_to_page(mfn)); - } - -+ cleanup_cpu_root_pgt(cpu); -+ - order = get_order_from_pages(NR_RESERVED_GDT_PAGES); - free_xenheap_pages(per_cpu(gdt_table, cpu), order); - -@@ -719,6 +905,9 @@ static int cpu_smpboot_alloc(unsigned int cpu) - set_ist(&idt_tables[cpu][TRAP_nmi], IST_NONE); - set_ist(&idt_tables[cpu][TRAP_machine_check], IST_NONE); - -+ if ( setup_cpu_root_pgt(cpu) ) -+ goto oom; -+ - for ( stub_page = 0, i = cpu & ~(STUBS_PER_PAGE - 1); - i < nr_cpu_ids && i <= (cpu | (STUBS_PER_PAGE - 1)); ++i ) - if ( cpu_online(i) && cpu_to_node(i) == node ) -@@ -773,6 +962,8 @@ static struct notifier_block cpu_smpboot_nfb = { - - void __init smp_prepare_cpus(unsigned int max_cpus) - { -+ int rc; -+ - register_cpu_notifier(&cpu_smpboot_nfb); - - mtrr_aps_sync_begin(); -@@ -786,6 +977,11 @@ void __init smp_prepare_cpus(unsigned int max_cpus) - - stack_base[0] = stack_start; - -+ rc = setup_cpu_root_pgt(0); -+ if ( rc ) -+ panic("Error %d setting up PV root page table\n", rc); -+ get_cpu_info()->pv_cr3 = __pa(per_cpu(root_pgt, 0)); -+ - set_nr_sockets(); - - socket_cpumask = xzalloc_array(cpumask_t *, nr_sockets); -@@ -850,6 +1046,8 @@ void __init smp_prepare_boot_cpu(void) - { - cpumask_set_cpu(smp_processor_id(), &cpu_online_map); - cpumask_set_cpu(smp_processor_id(), &cpu_present_map); -+ -+ get_cpu_info()->xen_cr3 = 0; - } - - static void -diff --git a/xen/arch/x86/x86_64/asm-offsets.c b/xen/arch/x86/x86_64/asm-offsets.c -index a3ae7a475f..4f2ba28520 100644 ---- a/xen/arch/x86/x86_64/asm-offsets.c -+++ b/xen/arch/x86/x86_64/asm-offsets.c -@@ -137,6 +137,8 @@ void __dummy__(void) - OFFSET(CPUINFO_processor_id, struct cpu_info, processor_id); - OFFSET(CPUINFO_current_vcpu, struct cpu_info, current_vcpu); - OFFSET(CPUINFO_cr4, struct cpu_info, cr4); -+ OFFSET(CPUINFO_xen_cr3, struct cpu_info, xen_cr3); -+ OFFSET(CPUINFO_pv_cr3, struct cpu_info, pv_cr3); - DEFINE(CPUINFO_sizeof, sizeof(struct cpu_info)); - BLANK(); - -diff --git a/xen/arch/x86/x86_64/compat/entry.S b/xen/arch/x86/x86_64/compat/entry.S -index 7ee01597a3..f7e53fb3cb 100644 ---- a/xen/arch/x86/x86_64/compat/entry.S -+++ b/xen/arch/x86/x86_64/compat/entry.S -@@ -270,6 +270,17 @@ ENTRY(cstar_enter) - pushq $0 - movl $TRAP_syscall, 4(%rsp) - SAVE_ALL -+ -+ GET_STACK_END(bx) -+ mov STACK_CPUINFO_FIELD(xen_cr3)(%rbx), %rcx -+ neg %rcx -+ jz .Lcstar_cr3_okay -+ mov %rcx, STACK_CPUINFO_FIELD(xen_cr3)(%rbx) -+ neg %rcx -+ write_cr3 rcx, rdi, rsi -+ movq $0, STACK_CPUINFO_FIELD(xen_cr3)(%rbx) -+.Lcstar_cr3_okay: -+ - GET_CURRENT(bx) - movq VCPU_domain(%rbx),%rcx - cmpb $0,DOMAIN_is_32bit_pv(%rcx) -diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S -index cebb1e4f4f..d63e734bb3 100644 ---- a/xen/arch/x86/x86_64/entry.S -+++ b/xen/arch/x86/x86_64/entry.S -@@ -36,6 +36,32 @@ ENTRY(switch_to_kernel) - /* %rbx: struct vcpu, interrupts disabled */ - restore_all_guest: - ASSERT_INTERRUPTS_DISABLED -+ -+ /* Copy guest mappings and switch to per-CPU root page table. */ -+ mov %cr3, %r9 -+ GET_STACK_END(dx) -+ mov STACK_CPUINFO_FIELD(pv_cr3)(%rdx), %rdi -+ movabs $PADDR_MASK & PAGE_MASK, %rsi -+ movabs $DIRECTMAP_VIRT_START, %rcx -+ mov %rdi, %rax -+ and %rsi, %rdi -+ and %r9, %rsi -+ add %rcx, %rdi -+ add %rcx, %rsi -+ mov $ROOT_PAGETABLE_FIRST_XEN_SLOT, %ecx -+ mov root_table_offset(SH_LINEAR_PT_VIRT_START)*8(%rsi), %r8 -+ mov %r8, root_table_offset(SH_LINEAR_PT_VIRT_START)*8(%rdi) -+ rep movsq -+ mov $ROOT_PAGETABLE_ENTRIES - \ -+ ROOT_PAGETABLE_LAST_XEN_SLOT - 1, %ecx -+ sub $(ROOT_PAGETABLE_FIRST_XEN_SLOT - \ -+ ROOT_PAGETABLE_LAST_XEN_SLOT - 1) * 8, %rsi -+ sub $(ROOT_PAGETABLE_FIRST_XEN_SLOT - \ -+ ROOT_PAGETABLE_LAST_XEN_SLOT - 1) * 8, %rdi -+ rep movsq -+ mov %r9, STACK_CPUINFO_FIELD(xen_cr3)(%rdx) -+ write_cr3 rax, rdi, rsi -+ - RESTORE_ALL - testw $TRAP_syscall,4(%rsp) - jz iret_exit_to_guest -@@ -70,6 +96,22 @@ iret_exit_to_guest: - ALIGN - /* No special register assumptions. */ - restore_all_xen: -+ /* -+ * Check whether we need to switch to the per-CPU page tables, in -+ * case we return to late PV exit code (from an NMI or #MC). -+ */ -+ GET_STACK_END(ax) -+ mov STACK_CPUINFO_FIELD(xen_cr3)(%rax), %rdx -+ mov STACK_CPUINFO_FIELD(pv_cr3)(%rax), %rax -+ test %rdx, %rdx -+ /* -+ * Ideally the condition would be "nsz", but such doesn't exist, -+ * so "g" will have to do. -+ */ -+UNLIKELY_START(g, exit_cr3) -+ write_cr3 rax, rdi, rsi -+UNLIKELY_END(exit_cr3) -+ - RESTORE_ALL adj=8 - iretq - -@@ -99,7 +141,18 @@ ENTRY(lstar_enter) - pushq $0 - movl $TRAP_syscall, 4(%rsp) - SAVE_ALL -- GET_CURRENT(bx) -+ -+ GET_STACK_END(bx) -+ mov STACK_CPUINFO_FIELD(xen_cr3)(%rbx), %rcx -+ neg %rcx -+ jz .Llstar_cr3_okay -+ mov %rcx, STACK_CPUINFO_FIELD(xen_cr3)(%rbx) -+ neg %rcx -+ write_cr3 rcx, r11, r12 -+ movq $0, STACK_CPUINFO_FIELD(xen_cr3)(%rbx) -+.Llstar_cr3_okay: -+ -+ __GET_CURRENT(bx) - testb $TF_kernel_mode,VCPU_thread_flags(%rbx) - jz switch_to_kernel - -@@ -248,7 +301,18 @@ GLOBAL(sysenter_eflags_saved) - pushq $0 - movl $TRAP_syscall, 4(%rsp) - SAVE_ALL -- GET_CURRENT(bx) -+ -+ GET_STACK_END(bx) -+ mov STACK_CPUINFO_FIELD(xen_cr3)(%rbx), %rcx -+ neg %rcx -+ jz .Lsyse_cr3_okay -+ mov %rcx, STACK_CPUINFO_FIELD(xen_cr3)(%rbx) -+ neg %rcx -+ write_cr3 rcx, rdi, rsi -+ movq $0, STACK_CPUINFO_FIELD(xen_cr3)(%rbx) -+.Lsyse_cr3_okay: -+ -+ __GET_CURRENT(bx) - cmpb $0,VCPU_sysenter_disables_events(%rbx) - movq VCPU_sysenter_addr(%rbx),%rax - setne %cl -@@ -284,13 +348,23 @@ ENTRY(int80_direct_trap) - movl $0x80, 4(%rsp) - SAVE_ALL - -+ GET_STACK_END(bx) -+ mov STACK_CPUINFO_FIELD(xen_cr3)(%rbx), %rcx -+ neg %rcx -+ jz .Lint80_cr3_okay -+ mov %rcx, STACK_CPUINFO_FIELD(xen_cr3)(%rbx) -+ neg %rcx -+ write_cr3 rcx, rdi, rsi -+ movq $0, STACK_CPUINFO_FIELD(xen_cr3)(%rbx) -+.Lint80_cr3_okay: -+ - cmpb $0,untrusted_msi(%rip) - UNLIKELY_START(ne, msi_check) - movl $0x80,%edi - call check_for_unexpected_msi - UNLIKELY_END(msi_check) - -- GET_CURRENT(bx) -+ __GET_CURRENT(bx) - - /* Check that the callback is non-null. */ - leaq VCPU_int80_bounce(%rbx),%rdx -@@ -441,9 +515,27 @@ ENTRY(dom_crash_sync_extable) - - ENTRY(common_interrupt) - SAVE_ALL CLAC -+ -+ GET_STACK_END(14) -+ mov STACK_CPUINFO_FIELD(xen_cr3)(%r14), %rcx -+ mov %rcx, %r15 -+ neg %rcx -+ jz .Lintr_cr3_okay -+ jns .Lintr_cr3_load -+ mov %rcx, STACK_CPUINFO_FIELD(xen_cr3)(%r14) -+ neg %rcx -+.Lintr_cr3_load: -+ write_cr3 rcx, rdi, rsi -+ xor %ecx, %ecx -+ mov %rcx, STACK_CPUINFO_FIELD(xen_cr3)(%r14) -+ testb $3, UREGS_cs(%rsp) -+ cmovnz %rcx, %r15 -+.Lintr_cr3_okay: -+ - CR4_PV32_RESTORE - movq %rsp,%rdi - callq do_IRQ -+ mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14) - jmp ret_from_intr - - /* No special register assumptions. */ -@@ -461,6 +553,23 @@ ENTRY(page_fault) - /* No special register assumptions. */ - GLOBAL(handle_exception) - SAVE_ALL CLAC -+ -+ GET_STACK_END(14) -+ mov STACK_CPUINFO_FIELD(xen_cr3)(%r14), %rcx -+ mov %rcx, %r15 -+ neg %rcx -+ jz .Lxcpt_cr3_okay -+ jns .Lxcpt_cr3_load -+ mov %rcx, STACK_CPUINFO_FIELD(xen_cr3)(%r14) -+ neg %rcx -+.Lxcpt_cr3_load: -+ write_cr3 rcx, rdi, rsi -+ xor %ecx, %ecx -+ mov %rcx, STACK_CPUINFO_FIELD(xen_cr3)(%r14) -+ testb $3, UREGS_cs(%rsp) -+ cmovnz %rcx, %r15 -+.Lxcpt_cr3_okay: -+ - handle_exception_saved: - GET_CURRENT(bx) - testb $X86_EFLAGS_IF>>8,UREGS_eflags+1(%rsp) -@@ -525,6 +634,7 @@ handle_exception_saved: - leaq exception_table(%rip),%rdx - PERFC_INCR(exceptions, %rax, %rbx) - callq *(%rdx,%rax,8) -+ mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14) - testb $3,UREGS_cs(%rsp) - jz restore_all_xen - leaq VCPU_trap_bounce(%rbx),%rdx -@@ -557,6 +667,7 @@ exception_with_ints_disabled: - rep; movsq # make room for ec/ev - 1: movq UREGS_error_code(%rsp),%rax # ec/ev - movq %rax,UREGS_kernel_sizeof(%rsp) -+ mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14) - jmp restore_all_xen # return to fixup code - - /* No special register assumptions. */ -@@ -634,6 +745,17 @@ ENTRY(double_fault) - movl $TRAP_double_fault,4(%rsp) - /* Set AC to reduce chance of further SMAP faults */ - SAVE_ALL STAC -+ -+ GET_STACK_END(bx) -+ mov STACK_CPUINFO_FIELD(xen_cr3)(%rbx), %rbx -+ test %rbx, %rbx -+ jz .Ldblf_cr3_okay -+ jns .Ldblf_cr3_load -+ neg %rbx -+.Ldblf_cr3_load: -+ write_cr3 rbx, rdi, rsi -+.Ldblf_cr3_okay: -+ - movq %rsp,%rdi - call do_double_fault - BUG /* do_double_fault() shouldn't return. */ -@@ -652,10 +774,28 @@ ENTRY(nmi) - movl $TRAP_nmi,4(%rsp) - handle_ist_exception: - SAVE_ALL CLAC -+ -+ GET_STACK_END(14) -+ mov STACK_CPUINFO_FIELD(xen_cr3)(%r14), %rcx -+ mov %rcx, %r15 -+ neg %rcx -+ jz .List_cr3_okay -+ jns .List_cr3_load -+ mov %rcx, STACK_CPUINFO_FIELD(xen_cr3)(%r14) -+ neg %rcx -+.List_cr3_load: -+ write_cr3 rcx, rdi, rsi -+ movq $0, STACK_CPUINFO_FIELD(xen_cr3)(%r14) -+.List_cr3_okay: -+ - CR4_PV32_RESTORE - testb $3,UREGS_cs(%rsp) - jz 1f -- /* Interrupted guest context. Copy the context to stack bottom. */ -+ /* -+ * Interrupted guest context. Clear the restore value for xen_cr3 -+ * and copy the context to stack bottom. -+ */ -+ xor %r15, %r15 - GET_CPUINFO_FIELD(guest_cpu_user_regs,di) - movq %rsp,%rsi - movl $UREGS_kernel_sizeof/8,%ecx -@@ -665,6 +805,7 @@ handle_ist_exception: - movzbl UREGS_entry_vector(%rsp),%eax - leaq exception_table(%rip),%rdx - callq *(%rdx,%rax,8) -+ mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14) - cmpb $TRAP_nmi,UREGS_entry_vector(%rsp) - jne ret_from_intr - -diff --git a/xen/include/asm-x86/asm_defns.h b/xen/include/asm-x86/asm_defns.h -index 6e5c079ad8..6cfdaa1aa0 100644 ---- a/xen/include/asm-x86/asm_defns.h -+++ b/xen/include/asm-x86/asm_defns.h -@@ -93,9 +93,30 @@ void ret_from_intr(void); - UNLIKELY_DONE(mp, tag); \ - __UNLIKELY_END(tag) - -+ .equ .Lrax, 0 -+ .equ .Lrcx, 1 -+ .equ .Lrdx, 2 -+ .equ .Lrbx, 3 -+ .equ .Lrsp, 4 -+ .equ .Lrbp, 5 -+ .equ .Lrsi, 6 -+ .equ .Lrdi, 7 -+ .equ .Lr8, 8 -+ .equ .Lr9, 9 -+ .equ .Lr10, 10 -+ .equ .Lr11, 11 -+ .equ .Lr12, 12 -+ .equ .Lr13, 13 -+ .equ .Lr14, 14 -+ .equ .Lr15, 15 -+ - #define STACK_CPUINFO_FIELD(field) (1 - CPUINFO_sizeof + CPUINFO_##field) - #define GET_STACK_END(reg) \ -+ .if .Lr##reg > 8; \ -+ movq $STACK_SIZE-1, %r##reg; \ -+ .else; \ - movl $STACK_SIZE-1, %e##reg; \ -+ .endif; \ - orq %rsp, %r##reg - - #define GET_CPUINFO_FIELD(field, reg) \ -@@ -177,6 +198,15 @@ void ret_from_intr(void); - #define ASM_STAC ASM_AC(STAC) - #define ASM_CLAC ASM_AC(CLAC) - -+.macro write_cr3 val:req, tmp1:req, tmp2:req -+ mov %cr4, %\tmp1 -+ mov %\tmp1, %\tmp2 -+ and $~X86_CR4_PGE, %\tmp1 -+ mov %\tmp1, %cr4 -+ mov %\val, %cr3 -+ mov %\tmp2, %cr4 -+.endm -+ - #define CR4_PV32_RESTORE \ - 667: ASM_NOP5; \ - .pushsection .altinstr_replacement, "ax"; \ -diff --git a/xen/include/asm-x86/current.h b/xen/include/asm-x86/current.h -index e6587e684c..397fa4c38f 100644 ---- a/xen/include/asm-x86/current.h -+++ b/xen/include/asm-x86/current.h -@@ -42,6 +42,18 @@ struct cpu_info { - struct vcpu *current_vcpu; - unsigned long per_cpu_offset; - unsigned long cr4; -+ /* -+ * Of the two following fields the latter is being set to the CR3 value -+ * to be used on the given pCPU for loading whenever 64-bit PV guest -+ * context is being entered. The value never changes once set. -+ * The former is the value to restore when re-entering Xen, if any. IOW -+ * its value being zero means there's nothing to restore. However, its -+ * value can also be negative, indicating to the exit-to-Xen code that -+ * restoring is not necessary, but allowing any nested entry code paths -+ * to still know the value to put back into CR3. -+ */ -+ unsigned long xen_cr3; -+ unsigned long pv_cr3; - /* get_stack_bottom() must be 16-byte aligned */ - }; - -diff --git a/xen/include/asm-x86/processor.h b/xen/include/asm-x86/processor.h -index ccd406a3fe..9906f38f2d 100644 ---- a/xen/include/asm-x86/processor.h -+++ b/xen/include/asm-x86/processor.h -@@ -517,6 +517,7 @@ extern idt_entry_t idt_table[]; - extern idt_entry_t *idt_tables[]; - - DECLARE_PER_CPU(struct tss_struct, init_tss); -+DECLARE_PER_CPU(root_pgentry_t *, root_pgt); - - extern void init_int80_direct_trap(struct vcpu *v); - -diff --git a/xen/include/asm-x86/x86_64/page.h b/xen/include/asm-x86/x86_64/page.h -index 589f22552e..afc77c3237 100644 ---- a/xen/include/asm-x86/x86_64/page.h -+++ b/xen/include/asm-x86/x86_64/page.h -@@ -25,8 +25,8 @@ - /* These are architectural limits. Current CPUs support only 40-bit phys. */ - #define PADDR_BITS 52 - #define VADDR_BITS 48 --#define PADDR_MASK ((1UL << PADDR_BITS)-1) --#define VADDR_MASK ((1UL << VADDR_BITS)-1) -+#define PADDR_MASK ((_AC(1,UL) << PADDR_BITS) - 1) -+#define VADDR_MASK ((_AC(1,UL) << VADDR_BITS) - 1) - - #define is_canonical_address(x) (((long)(x) >> 47) == ((long)(x) >> 63)) - -@@ -117,6 +117,7 @@ typedef l4_pgentry_t root_pgentry_t; - : (((_s) < ROOT_PAGETABLE_FIRST_XEN_SLOT) || \ - ((_s) > ROOT_PAGETABLE_LAST_XEN_SLOT))) - -+#define root_table_offset l4_table_offset - #define root_get_pfn l4e_get_pfn - #define root_get_flags l4e_get_flags - #define root_get_intpte l4e_get_intpte --- -2.15.1 - Property changes on: head/emulators/xen-kernel/files/0001-x86-Meltdown-band-aid-against-malicious-64-bit-PV-gu.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/0002-p2m-Check-return-value-of-p2m_set_entry-when-decreas.patch =================================================================== --- head/emulators/xen-kernel/files/0002-p2m-Check-return-value-of-p2m_set_entry-when-decreas.patch (revision 475253) +++ head/emulators/xen-kernel/files/0002-p2m-Check-return-value-of-p2m_set_entry-when-decreas.patch (nonexistent) @@ -1,109 +0,0 @@ -From 01feeda5363dd8d2fea8395c2c435203751c8ba5 Mon Sep 17 00:00:00 2001 -From: George Dunlap -Date: Fri, 10 Nov 2017 16:53:55 +0000 -Subject: [PATCH 2/2] p2m: Check return value of p2m_set_entry() when - decreasing reservation - -If the entire range specified to p2m_pod_decrease_reservation() is marked -populate-on-demand, then it will make a single p2m_set_entry() call, -reducing its PoD entry count. - -Unfortunately, in the right circumstances, this p2m_set_entry() call -may fail. It that case, repeated calls to decrease_reservation() may -cause p2m->pod.entry_count to fall below zero, potentially tripping -over BUG_ON()s to the contrary. - -Instead, check to see if the entry succeeded, and return false if not. -The caller will then call guest_remove_page() on the gfns, which will -return -EINVAL upon finding no valid memory there to return. - -Unfortunately if the order > 0, the entry may have partially changed. -A domain_crash() is probably the safest thing in that case. - -Other p2m_set_entry() calls in the same function should be fine, -because they are writing the entry at its current order. Nonetheless, -check the return value and crash if our assumption turns otu to be -wrong. - -This is part of XSA-247. - -Reported-by: George Dunlap -Signed-off-by: George Dunlap -Reviewed-by: Jan Beulich ---- -v2: Crash the domain if we're not sure it's safe (or if we think it -can't happen) ---- - xen/arch/x86/mm/p2m-pod.c | 42 +++++++++++++++++++++++++++++++++--------- - 1 file changed, 33 insertions(+), 9 deletions(-) - -diff --git a/xen/arch/x86/mm/p2m-pod.c b/xen/arch/x86/mm/p2m-pod.c -index 5ec8a37949..91d309647e 100644 ---- a/xen/arch/x86/mm/p2m-pod.c -+++ b/xen/arch/x86/mm/p2m-pod.c -@@ -557,11 +557,23 @@ p2m_pod_decrease_reservation(struct domain *d, - - if ( !nonpod ) - { -- /* All PoD: Mark the whole region invalid and tell caller -- * we're done. */ -- p2m_set_entry(p2m, gpfn, _mfn(INVALID_MFN), order, p2m_invalid, -- p2m->default_access); -- p2m->pod.entry_count-=(1<default_access) ) -+ { -+ /* -+ * If this fails, we can't tell how much of the range was changed. -+ * Best to crash the domain unless we're sure a partial change is -+ * impossible. -+ */ -+ if ( order != 0 ) -+ domain_crash(d); -+ goto out_unlock; -+ } -+ p2m->pod.entry_count -= 1UL << order; - BUG_ON(p2m->pod.entry_count < 0); - ret = 1; - goto out_entry_check; -@@ -602,8 +614,14 @@ p2m_pod_decrease_reservation(struct domain *d, - n = 1UL << cur_order; - if ( t == p2m_populate_on_demand ) - { -- p2m_set_entry(p2m, gpfn + i, _mfn(INVALID_MFN), cur_order, -- p2m_invalid, p2m->default_access); -+ /* This shouldn't be able to fail */ -+ if ( p2m_set_entry(p2m, gpfn + i, _mfn(INVALID_MFN), cur_order, -+ p2m_invalid, p2m->default_access) ) -+ { -+ ASSERT_UNREACHABLE(); -+ domain_crash(d); -+ goto out_unlock; -+ } - p2m->pod.entry_count -= n; - BUG_ON(p2m->pod.entry_count < 0); - pod -= n; -@@ -624,8 +642,14 @@ p2m_pod_decrease_reservation(struct domain *d, - - page = mfn_to_page(mfn); - -- p2m_set_entry(p2m, gpfn + i, _mfn(INVALID_MFN), cur_order, -- p2m_invalid, p2m->default_access); -+ /* This shouldn't be able to fail */ -+ if ( p2m_set_entry(p2m, gpfn + i, _mfn(INVALID_MFN), cur_order, -+ p2m_invalid, p2m->default_access) ) -+ { -+ ASSERT_UNREACHABLE(); -+ domain_crash(d); -+ goto out_unlock; -+ } - p2m_tlb_flush_sync(p2m); - for ( j = 0; j < n; ++j ) - set_gpfn_from_mfn(mfn_x(mfn), INVALID_M2P_ENTRY); --- -2.15.0 - Property changes on: head/emulators/xen-kernel/files/0002-p2m-Check-return-value-of-p2m_set_entry-when-decreas.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/0004-x86-IRQ-conditionally-preserve-irq-pirq-mapping-on-error.patch =================================================================== --- head/emulators/xen-kernel/files/0004-x86-IRQ-conditionally-preserve-irq-pirq-mapping-on-error.patch (revision 475253) +++ head/emulators/xen-kernel/files/0004-x86-IRQ-conditionally-preserve-irq-pirq-mapping-on-error.patch (nonexistent) @@ -1,124 +0,0 @@ -From: Jan Beulich -Subject: x86/IRQ: conditionally preserve irq <-> pirq mapping on map error paths - -Mappings that had been set up before should not be torn down when -handling unrelated errors. - -This is part of XSA-237. - -Reported-by: HW42 -Signed-off-by: Jan Beulich -Reviewed-by: George Dunlap - ---- a/xen/arch/x86/irq.c -+++ b/xen/arch/x86/irq.c -@@ -1252,7 +1252,8 @@ static int prepare_domain_irq_pirq(struc - return -ENOMEM; - } - *pinfo = info; -- return 0; -+ -+ return !!err; - } - - static void set_domain_irq_pirq(struct domain *d, int irq, struct pirq *pirq) -@@ -1295,7 +1296,10 @@ int init_domain_irq_mapping(struct domai - continue; - err = prepare_domain_irq_pirq(d, i, i, &info); - if ( err ) -+ { -+ ASSERT(err < 0); - break; -+ } - set_domain_irq_pirq(d, i, info); - } - -@@ -1903,6 +1907,7 @@ int map_domain_pirq( - struct pirq *info; - struct irq_desc *desc; - unsigned long flags; -+ DECLARE_BITMAP(prepared, MAX_MSI_IRQS) = {}; - - ASSERT(spin_is_locked(&d->event_lock)); - -@@ -1946,8 +1951,10 @@ int map_domain_pirq( - } - - ret = prepare_domain_irq_pirq(d, irq, pirq, &info); -- if ( ret ) -+ if ( ret < 0 ) - goto revoke; -+ if ( !ret ) -+ __set_bit(0, prepared); - - desc = irq_to_desc(irq); - -@@ -2019,8 +2026,10 @@ int map_domain_pirq( - irq = create_irq(NUMA_NO_NODE); - ret = irq >= 0 ? prepare_domain_irq_pirq(d, irq, pirq + nr, &info) - : irq; -- if ( ret ) -+ if ( ret < 0 ) - break; -+ if ( !ret ) -+ __set_bit(nr, prepared); - msi_desc[nr].irq = irq; - - if ( irq_permit_access(d, irq) != 0 ) -@@ -2053,15 +2062,15 @@ int map_domain_pirq( - desc->msi_desc = NULL; - spin_unlock_irqrestore(&desc->lock, flags); - } -- while ( nr-- ) -+ while ( nr ) - { - if ( irq >= 0 && irq_deny_access(d, irq) ) - printk(XENLOG_G_ERR - "dom%d: could not revoke access to IRQ%d (pirq %d)\n", - d->domain_id, irq, pirq); -- if ( info ) -+ if ( info && test_bit(nr, prepared) ) - cleanup_domain_irq_pirq(d, irq, info); -- info = pirq_info(d, pirq + nr); -+ info = pirq_info(d, pirq + --nr); - irq = info->arch.irq; - } - msi_desc->irq = -1; -@@ -2077,12 +2086,14 @@ int map_domain_pirq( - spin_lock_irqsave(&desc->lock, flags); - set_domain_irq_pirq(d, irq, info); - spin_unlock_irqrestore(&desc->lock, flags); -+ ret = 0; - } - - done: - if ( ret ) - { -- cleanup_domain_irq_pirq(d, irq, info); -+ if ( test_bit(0, prepared) ) -+ cleanup_domain_irq_pirq(d, irq, info); - revoke: - if ( irq_deny_access(d, irq) ) - printk(XENLOG_G_ERR ---- a/xen/arch/x86/physdev.c -+++ b/xen/arch/x86/physdev.c -@@ -185,7 +185,7 @@ int physdev_map_pirq(domid_t domid, int - } - else if ( type == MAP_PIRQ_TYPE_MULTI_MSI ) - { -- if ( msi->entry_nr <= 0 || msi->entry_nr > 32 ) -+ if ( msi->entry_nr <= 0 || msi->entry_nr > MAX_MSI_IRQS ) - ret = -EDOM; - else if ( msi->entry_nr != 1 && !iommu_intremap ) - ret = -EOPNOTSUPP; ---- a/xen/include/asm-x86/msi.h -+++ b/xen/include/asm-x86/msi.h -@@ -55,6 +55,8 @@ - /* MAX fixed pages reserved for mapping MSIX tables. */ - #define FIX_MSIX_MAX_PAGES 512 - -+#define MAX_MSI_IRQS 32 /* limited by MSI capability struct properties */ -+ - struct msi_info { - u16 seg; - u8 bus; Property changes on: head/emulators/xen-kernel/files/0004-x86-IRQ-conditionally-preserve-irq-pirq-mapping-on-error.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/0002-xen-rework-paging_log_dirty_op-to-work-with-hvm-gues.patch =================================================================== --- head/emulators/xen-kernel/files/0002-xen-rework-paging_log_dirty_op-to-work-with-hvm-gues.patch (revision 475253) +++ head/emulators/xen-kernel/files/0002-xen-rework-paging_log_dirty_op-to-work-with-hvm-gues.patch (nonexistent) @@ -1,244 +0,0 @@ -From e253a2e2fb45197273cee7a7fa2b77f7a87cb67f Mon Sep 17 00:00:00 2001 -From: Roger Pau Monne -Date: Tue, 31 May 2016 16:07:26 +0200 -Subject: [PATCH 2/2] xen: rework paging_log_dirty_op to work with hvm guests -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -When the caller of paging_log_dirty_op is a hvm guest Xen would choke when -trying to copy the dirty bitmap to the guest because the paging lock is -already held. - -Fix this by independently mapping each page of the guest bitmap as needed -without the paging lock held. - -Signed-off-by: Roger Pau Monné -Cc: Tim Deegan -Cc: Jan Beulich -Cc: Andrew Cooper ---- -Changes since v6: - - Move the again label to the start of the function. - - Set all the preempt fields if we need to map a new page (just like on the - preempt case). - -Changes since v4: - - Indent again label. - - Replace bogus paddr_t cast with proper type. - - Update preempt.log_dirty before dropping the paging lock. - -Changes since v3: - - Drop last parameter from map_dirty_bitmap. - - Drop pointless initializers in paging_log_dirty_op. - - Add a new field to paging_domain in order to copy i2 position. - - Move the again case up to make sure we don't hold cached values of the - contents of log_dirty. - - Replace the BUG_ON in paging_log_dirty_op with an ASSERT. - -Changes since v2: - - Add checks for p2m_is_ram and p2m_is_discard_write when mapping a guest - page. - - Remove error checking from memset/memcpy, they unconditionally return - dst. ---- - xen/arch/x86/mm/paging.c | 97 +++++++++++++++++++++++++++++++++++++++----- - xen/include/asm-x86/domain.h | 1 + - 2 files changed, 87 insertions(+), 11 deletions(-) - -diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c -index ed94ff7..595c9d6 100644 ---- a/xen/arch/x86/mm/paging.c -+++ b/xen/arch/x86/mm/paging.c -@@ -406,6 +406,51 @@ int paging_mfn_is_dirty(struct domain *d, mfn_t gmfn) - return rv; - } - -+static inline void *map_dirty_bitmap(XEN_GUEST_HANDLE_64(uint8) dirty_bitmap, -+ unsigned long pages, -+ struct page_info **page) -+{ -+ uint32_t pfec = PFEC_page_present | PFEC_write_access; -+ unsigned long gfn; -+ p2m_type_t p2mt; -+ -+ gfn = paging_gva_to_gfn(current, -+ (unsigned long)(dirty_bitmap.p + (pages >> 3)), -+ &pfec); -+ if ( gfn == INVALID_GFN ) -+ return NULL; -+ -+ *page = get_page_from_gfn(current->domain, gfn, &p2mt, P2M_UNSHARE); -+ -+ if ( !p2m_is_ram(p2mt) ) -+ { -+ put_page(*page); -+ return NULL; -+ } -+ if ( p2m_is_paging(p2mt) ) -+ { -+ put_page(*page); -+ p2m_mem_paging_populate(current->domain, gfn); -+ return NULL; -+ } -+ if ( p2m_is_shared(p2mt) || p2m_is_discard_write(p2mt) ) -+ { -+ put_page(*page); -+ return NULL; -+ } -+ -+ return __map_domain_page(*page); -+} -+ -+static inline void unmap_dirty_bitmap(void *addr, struct page_info *page) -+{ -+ if ( addr != NULL ) -+ { -+ unmap_domain_page(addr); -+ put_page(page); -+ } -+} -+ - - /* Read a domain's log-dirty bitmap and stats. If the operation is a CLEAN, - * clear the bitmap and stats as well. */ -@@ -418,7 +463,11 @@ static int paging_log_dirty_op(struct domain *d, - mfn_t *l4 = NULL, *l3 = NULL, *l2 = NULL; - unsigned long *l1 = NULL; - int i4, i3, i2; -+ uint8_t *dirty_bitmap; -+ struct page_info *page; -+ unsigned long index_mapped; - -+ again: - if ( !resuming ) - { - /* -@@ -439,6 +488,14 @@ static int paging_log_dirty_op(struct domain *d, - p2m_flush_hardware_cached_dirty(d); - } - -+ index_mapped = resuming ? d->arch.paging.preempt.log_dirty.done : 0; -+ dirty_bitmap = map_dirty_bitmap(sc->dirty_bitmap, index_mapped, &page); -+ if ( dirty_bitmap == NULL ) -+ { -+ domain_unpause(d); -+ return -EFAULT; -+ } -+ - paging_lock(d); - - if ( !d->arch.paging.preempt.dom ) -@@ -478,18 +535,18 @@ static int paging_log_dirty_op(struct domain *d, - l4 = paging_map_log_dirty_bitmap(d); - i4 = d->arch.paging.preempt.log_dirty.i4; - i3 = d->arch.paging.preempt.log_dirty.i3; -+ i2 = d->arch.paging.preempt.log_dirty.i2; - pages = d->arch.paging.preempt.log_dirty.done; - - for ( ; (pages < sc->pages) && (i4 < LOGDIRTY_NODE_ENTRIES); i4++, i3 = 0 ) - { - l3 = (l4 && mfn_valid(l4[i4])) ? map_domain_page(l4[i4]) : NULL; -- for ( ; (pages < sc->pages) && (i3 < LOGDIRTY_NODE_ENTRIES); i3++ ) -+ for ( ; (pages < sc->pages) && (i3 < LOGDIRTY_NODE_ENTRIES); -+ i3++, i2 = 0 ) - { - l2 = ((l3 && mfn_valid(l3[i3])) ? - map_domain_page(l3[i3]) : NULL); -- for ( i2 = 0; -- (pages < sc->pages) && (i2 < LOGDIRTY_NODE_ENTRIES); -- i2++ ) -+ for ( ; (pages < sc->pages) && (i2 < LOGDIRTY_NODE_ENTRIES); i2++ ) - { - unsigned int bytes = PAGE_SIZE; - l1 = ((l2 && mfn_valid(l2[i2])) ? -@@ -498,15 +555,28 @@ static int paging_log_dirty_op(struct domain *d, - bytes = (unsigned int)((sc->pages - pages + 7) >> 3); - if ( likely(peek) ) - { -- if ( (l1 ? copy_to_guest_offset(sc->dirty_bitmap, -- pages >> 3, (uint8_t *)l1, -- bytes) -- : clear_guest_offset(sc->dirty_bitmap, -- pages >> 3, bytes)) != 0 ) -+ if ( pages >> (3 + PAGE_SHIFT) != -+ index_mapped >> (3 + PAGE_SHIFT) ) - { -- rv = -EFAULT; -- goto out; -+ /* We need to map next page */ -+ d->arch.paging.preempt.log_dirty.i4 = i4; -+ d->arch.paging.preempt.log_dirty.i3 = i3; -+ d->arch.paging.preempt.log_dirty.i2 = i2; -+ d->arch.paging.preempt.log_dirty.done = pages; -+ d->arch.paging.preempt.dom = current->domain; -+ d->arch.paging.preempt.op = sc->op; -+ resuming = 1; -+ paging_unlock(d); -+ unmap_dirty_bitmap(dirty_bitmap, page); -+ goto again; - } -+ ASSERT(((pages >> 3) % PAGE_SIZE) + bytes <= PAGE_SIZE); -+ if ( l1 ) -+ memcpy(dirty_bitmap + ((pages >> 3) % PAGE_SIZE), l1, -+ bytes); -+ else -+ memset(dirty_bitmap + ((pages >> 3) % PAGE_SIZE), 0, -+ bytes); - } - pages += bytes << 3; - if ( l1 ) -@@ -524,6 +594,7 @@ static int paging_log_dirty_op(struct domain *d, - { - d->arch.paging.preempt.log_dirty.i4 = i4; - d->arch.paging.preempt.log_dirty.i3 = i3 + 1; -+ d->arch.paging.preempt.log_dirty.i2 = 0; - rv = -ERESTART; - break; - } -@@ -536,6 +607,7 @@ static int paging_log_dirty_op(struct domain *d, - { - d->arch.paging.preempt.log_dirty.i4 = i4 + 1; - d->arch.paging.preempt.log_dirty.i3 = 0; -+ d->arch.paging.preempt.log_dirty.i2 = 0; - rv = -ERESTART; - } - if ( rv ) -@@ -565,6 +637,7 @@ static int paging_log_dirty_op(struct domain *d, - if ( rv ) - { - /* Never leave the domain paused on real errors. */ -+ unmap_dirty_bitmap(dirty_bitmap, page); - ASSERT(rv == -ERESTART); - return rv; - } -@@ -577,12 +650,14 @@ static int paging_log_dirty_op(struct domain *d, - * paging modes (shadow or hap). Safe because the domain is paused. */ - d->arch.paging.log_dirty.clean_dirty_bitmap(d); - } -+ unmap_dirty_bitmap(dirty_bitmap, page); - domain_unpause(d); - return rv; - - out: - d->arch.paging.preempt.dom = NULL; - paging_unlock(d); -+ unmap_dirty_bitmap(dirty_bitmap, page); - domain_unpause(d); - - if ( l1 ) -diff --git a/xen/include/asm-x86/domain.h b/xen/include/asm-x86/domain.h -index 165e533..0dc1ed8 100644 ---- a/xen/include/asm-x86/domain.h -+++ b/xen/include/asm-x86/domain.h -@@ -206,6 +206,7 @@ struct paging_domain { - unsigned long done:PADDR_BITS - PAGE_SHIFT; - unsigned long i4:PAGETABLE_ORDER; - unsigned long i3:PAGETABLE_ORDER; -+ unsigned long i2:PAGETABLE_ORDER; - } log_dirty; - }; - } preempt; --- -2.7.4 (Apple Git-66) - Property changes on: head/emulators/xen-kernel/files/0002-xen-rework-paging_log_dirty_op-to-work-with-hvm-gues.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Index: head/emulators/xen-kernel/files/0002-gnttab-never-create-host-mapping-unless-asked-to.patch =================================================================== --- head/emulators/xen-kernel/files/0002-gnttab-never-create-host-mapping-unless-asked-to.patch (revision 475253) +++ head/emulators/xen-kernel/files/0002-gnttab-never-create-host-mapping-unless-asked-to.patch (nonexistent) @@ -1,42 +0,0 @@ -From 8894a0c20d920aada305aade0591c1e77167b1db Mon Sep 17 00:00:00 2001 -From: Jan Beulich -Date: Fri, 2 Jun 2017 15:21:27 +0100 -Subject: [PATCH 2/4] gnttab: never create host mapping unless asked to - -We shouldn't create a host mapping unless asked to even in the case of -mapping a granted MMIO page. In particular the mapping wouldn't be torn -down when processing the matching unmap request. - -This is part of XSA-224. - -Reported-by: Jan Beulich -Signed-off-by: Jan Beulich ---- - xen/common/grant_table.c | 11 +++++++---- - 1 file changed, 7 insertions(+), 4 deletions(-) - -diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c -index 69cbdb6..452538e 100644 ---- a/xen/common/grant_table.c -+++ b/xen/common/grant_table.c -@@ -911,10 +911,13 @@ __gnttab_map_grant_ref( - goto undo_out; - } - -- rc = create_grant_host_mapping( -- op->host_addr, frame, op->flags, cache_flags); -- if ( rc != GNTST_okay ) -- goto undo_out; -+ if ( op->flags & GNTMAP_host_map ) -+ { -+ rc = create_grant_host_mapping(op->host_addr, frame, op->flags, -+ cache_flags); -+ if ( rc != GNTST_okay ) -+ goto undo_out; -+ } - } - else if ( owner == rd || owner == dom_cow ) - { --- -2.1.4 - Property changes on: head/emulators/xen-kernel/files/0002-gnttab-never-create-host-mapping-unless-asked-to.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/0001-x86-compat-fix-compilation-errors-with-clang-6.patch =================================================================== --- head/emulators/xen-kernel/files/0001-x86-compat-fix-compilation-errors-with-clang-6.patch (revision 475253) +++ head/emulators/xen-kernel/files/0001-x86-compat-fix-compilation-errors-with-clang-6.patch (nonexistent) @@ -1,76 +0,0 @@ -From 58e028648e3bc831b1b60a39b7f1661538fa6a34 Mon Sep 17 00:00:00 2001 -From: Roger Pau Monne -Date: Tue, 23 Jan 2018 16:05:17 +0000 -Subject: [PATCH] x86/compat: fix compilation errors with clang 6 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The following errors are generated when compiling Xen with clang 6: - -In file included from x86_64/asm-offsets.c:9: -In file included from /root/src/xen/xen/include/xen/sched.h:8: -In file included from /root/src/xen/xen/include/xen/shared.h:6: -In file included from /root/src/xen/xen/include/compat/arch-x86/../xen.h:9: -/root/src/xen/xen/include/compat/arch-x86/xen.h:10:10: error: the current #pragma pack aligment - value is modified in the included file [-Werror,-Wpragma-pack] -#include "xen-x86_32.h" - ^ -/root/src/xen/xen/include/compat/arch-x86/xen-x86_32.h:40:9: note: previous '#pragma pack' - directive that modifies alignment is here -#pragma pack() - ^ -In file included from x86_64/asm-offsets.c:9: -In file included from /root/src/xen/xen/include/xen/sched.h:8: -In file included from /root/src/xen/xen/include/xen/shared.h:6: -/root/src/xen/xen/include/compat/arch-x86/../xen.h:9:10: error: the current #pragma pack aligment - value is modified in the included file [-Werror,-Wpragma-pack] -#include "arch-x86/xen.h" - ^ -/root/src/xen/xen/include/compat/arch-x86/xen.h:71:9: note: previous '#pragma pack' directive that - modifies alignment is here -#pragma pack() - ^ -2 errors generated. - -Fix this by using pragma push/pop in order to store the current pragma -value in the compiler stack and later restoring it when using clang. - -Signed-off-by: Roger Pau Monné ---- -Cc: Andrew Cooper -Cc: George Dunlap -Cc: Ian Jackson -Cc: Jan Beulich -Cc: Konrad Rzeszutek Wilk -Cc: Stefano Stabellini -Cc: Tim Deegan -Cc: Wei Liu ---- -Changes since v1: - - Only use push/pop with clang. ---- - xen/include/Makefile | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/xen/include/Makefile b/xen/include/Makefile -index 268bc9d6ba..eeae942903 100644 ---- a/xen/include/Makefile -+++ b/xen/include/Makefile -@@ -34,8 +34,13 @@ cppflags-y := -include public/xen-compat.h - cppflags-$(CONFIG_X86) += -m32 - - # 8-byte types are 4-byte aligned on x86_32 ... -+ifeq ($(clang),y) -+prefix-$(CONFIG_X86) := \#pragma pack(push, 4) -+suffix-$(CONFIG_X86) := \#pragma pack(pop) -+else - prefix-$(CONFIG_X86) := \#pragma pack(4) - suffix-$(CONFIG_X86) := \#pragma pack() -+endif - - endif - --- -2.15.1 - Property changes on: head/emulators/xen-kernel/files/0001-x86-compat-fix-compilation-errors-with-clang-6.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/0002-build-clang-fix-XSM-dummy-policy-when-using-clang-4..patch =================================================================== --- head/emulators/xen-kernel/files/0002-build-clang-fix-XSM-dummy-policy-when-using-clang-4..patch (revision 475253) +++ head/emulators/xen-kernel/files/0002-build-clang-fix-XSM-dummy-policy-when-using-clang-4..patch (nonexistent) @@ -1,69 +0,0 @@ -From e5a1bf46187b0d39ec7e8c46e11c42027840747c Mon Sep 17 00:00:00 2001 -From: Roger Pau Monne -Date: Fri, 10 Mar 2017 01:08:26 +0900 -Subject: [PATCH 2/2] build/clang: fix XSM dummy policy when using clang 4.0 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -There seems to be some weird bug in clang 4.0 that prevents xsm_pmu_op from -working as expected, and vpmu.o ends up with a reference to -__xsm_action_mismatch_detected which makes the build fail: - -[...] -ld -melf_x86_64_fbsd -T xen.lds -N prelink.o \ - xen/common/symbols-dummy.o -o xen/.xen-syms.0 -prelink.o: In function `xsm_default_action': -xen/include/xsm/dummy.h:80: undefined reference to `__xsm_action_mismatch_detected' -xen/xen/include/xsm/dummy.h:80: relocation truncated to fit: R_X86_64_PC32 against undefined symbol `__xsm_action_mismatch_detected' -ld: xen/xen/.xen-syms.0: hidden symbol `__xsm_action_mismatch_detected' isn't defined - -Then doing a search in the objects files: - -# find xen/ -type f -name '*.o' -print0 | xargs -0 bash -c \ - 'for filename; do nm "$filename" | \ - grep -q __xsm_action_mismatch_detected && echo "$filename"; done' bash -xen/arch/x86/prelink.o -xen/arch/x86/cpu/vpmu.o -xen/arch/x86/cpu/built_in.o -xen/arch/x86/built_in.o - -The current patch is the only way I've found to fix this so far, by simply -moving the XSM_PRIV check into the default case in xsm_pmu_op. This also fixes -the behavior of do_xenpmu_op, which will now return -EINVAL for unknown -XENPMU_* operations, instead of -EPERM when called by a privileged domain. - -Signed-off-by: Roger Pau Monné ---- -Cc: Daniel De Graaf ---- - xen/include/xsm/dummy.h | 7 +------ - 1 file changed, 1 insertion(+), 6 deletions(-) - -diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h -index abbe282..0039c39 100644 ---- a/xen/include/xsm/dummy.h -+++ b/xen/include/xsm/dummy.h -@@ -711,18 +711,13 @@ static XSM_INLINE int xsm_pmu_op (XSM_DEFAULT_ARG struct domain *d, unsigned int - XSM_ASSERT_ACTION(XSM_OTHER); - switch ( op ) - { -- case XENPMU_mode_set: -- case XENPMU_mode_get: -- case XENPMU_feature_set: -- case XENPMU_feature_get: -- return xsm_default_action(XSM_PRIV, d, current->domain); - case XENPMU_init: - case XENPMU_finish: - case XENPMU_lvtpc_set: - case XENPMU_flush: - return xsm_default_action(XSM_HOOK, d, current->domain); - default: -- return -EPERM; -+ return xsm_default_action(XSM_PRIV, d, current->domain); - } - } - --- -2.10.1 (Apple Git-78) - Property changes on: head/emulators/xen-kernel/files/0002-build-clang-fix-XSM-dummy-policy-when-using-clang-4..patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/0001-x86-mm-Always-set-_PAGE_ACCESSED-on-L4e-updates.patch =================================================================== --- head/emulators/xen-kernel/files/0001-x86-mm-Always-set-_PAGE_ACCESSED-on-L4e-updates.patch (revision 475253) +++ head/emulators/xen-kernel/files/0001-x86-mm-Always-set-_PAGE_ACCESSED-on-L4e-updates.patch (nonexistent) @@ -1,45 +0,0 @@ -From 9b76908e6e074d7efbeafe6bad066ecc5f3c3c43 Mon Sep 17 00:00:00 2001 -From: Andrew Cooper -Date: Wed, 17 Jan 2018 17:23:37 +0100 -Subject: [PATCH] x86/mm: Always set _PAGE_ACCESSED on L4e updates - -Signed-off-by: Andrew Cooper -Reviewed-by: Jan Beulich -master commit: bd61fe94bee0556bc2f64999a4a8315b93f90f21 -master date: 2018-01-15 13:53:16 +0000 ---- - xen/arch/x86/mm.c | 14 +++++++++++++- - 1 file changed, 13 insertions(+), 1 deletion(-) - -diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c -index ada12c05c5..50f500c940 100644 ---- a/xen/arch/x86/mm.c -+++ b/xen/arch/x86/mm.c -@@ -1296,11 +1296,23 @@ get_page_from_l4e( - _PAGE_USER|_PAGE_RW); \ - } while ( 0 ) - -+/* -+ * When shadowing an L4 behind the guests back (e.g. for per-pcpu -+ * purposes), we cannot efficiently sync access bit updates from hardware -+ * (on the shadow tables) back into the guest view. -+ * -+ * We therefore unconditionally set _PAGE_ACCESSED even in the guests -+ * view. This will appear to the guest as a CPU which proactively pulls -+ * all valid L4e's into its TLB, which is compatible with the x86 ABI. -+ * -+ * At the time of writing, all PV guests set the access bit anyway, so -+ * this is no actual change in their behaviour. -+ */ - #define adjust_guest_l4e(pl4e, d) \ - do { \ - if ( likely(l4e_get_flags((pl4e)) & _PAGE_PRESENT) && \ - likely(!is_pv_32bit_domain(d)) ) \ -- l4e_add_flags((pl4e), _PAGE_USER); \ -+ l4e_add_flags((pl4e), _PAGE_USER | _PAGE_ACCESSED); \ - } while ( 0 ) - - #define unadjust_guest_l3e(pl3e, d) \ --- -2.15.1 - Property changes on: head/emulators/xen-kernel/files/0001-x86-mm-Always-set-_PAGE_ACCESSED-on-L4e-updates.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xen.4th =================================================================== --- head/emulators/xen-kernel/files/xen.4th (revision 475253) +++ head/emulators/xen-kernel/files/xen.4th (nonexistent) @@ -1,99 +0,0 @@ -\ Copyright (c) 2015 Devin Teske -\ All rights reserved. -\ -\ Redistribution and use in source and binary forms, with or without -\ modification, are permitted provided that the following conditions -\ are met: -\ 1. Redistributions of source code must retain the above copyright -\ notice, this list of conditions and the following disclaimer. -\ 2. Redistributions in binary form must reproduce the above copyright -\ notice, this list of conditions and the following disclaimer in the -\ documentation and/or other materials provided with the distribution. -\ -\ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -\ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -\ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -\ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -\ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -\ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -\ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -\ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -\ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -\ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -\ SUCH DAMAGE. -\ -\ $FreeBSD$ - -create xenkerndefault 64 allot -0 xenkerndefault c! - -also menu-command-helpers -also menu-namespace - -: init_xen_active ( N -- N ) - s" [X]en Kernel.. off" 2 pick menu_caption[x] setenv - s" [X]en Kernel.. On" 2 pick toggled_text[x] setenv - s" toggle_xen" 2 pick menu_command[x] setenv - s" 120" 2 pick menu_keycode[x] setenv - s" ^[1mX^[men Kernel.. ^[34;1mOff^[m" 2 pick ansi_caption[x] setenv - s" ^[1mX^[men Kernel.. ^[32;7mOn^[m" 2 pick toggled_ansi[x] setenv -; - -: init_xen_inactive ( N -- N ) - s" Xen Kernel.. N/A" 2dup - 4 pick menu_caption[x] setenv - 2 pick ansi_caption[x] setenv - s" true" 2 pick menu_command[x] setenv -; - -: init_xen ( -- ) - s" optionsmenu_options" getenv 0> if - c@ dup [char] 0 > over [char] 9 < and false = if - drop [char] 0 - then - 1+ - else - [char] 1 - then - begin - dup [char] 8 > if - false ( break ) - else - dup s" optionsmenu_caption[x]" 20 +c! getenv -1 = if - false ( break ) - else - drop true - then - then - while - 1+ - repeat - - s" xen_kernel" getenv dup -1 <> over 0> and if - xenkerndefault 1+ 0 2swap strcat swap 1- c! - init_xen_active ( n -- n ) - toggle_menuitem ( n -- n ) - else - drop - xenkerndefault c@ 0<> if - init_xen_active ( n -- n ) - else - init_xen_inactive ( n -- n ) - then - then -; - -: toggle_xen ( N -- N TRUE ) - toggle_menuitem ( n -- n ) - menu-redraw - - dup toggle_stateN @ 0= if - s" xen_kernel" unsetenv - else - xenkerndefault count s" xen_kernel" setenv - then - - TRUE \ loop menu again -; - -set optionsmenu_init="$optionsmenu_init init_xen" Property changes on: head/emulators/xen-kernel/files/xen.4th ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/0002-x86-mm-Disable-PV-linear-pagetables-by-default.patch =================================================================== --- head/emulators/xen-kernel/files/0002-x86-mm-Disable-PV-linear-pagetables-by-default.patch (revision 475253) +++ head/emulators/xen-kernel/files/0002-x86-mm-Disable-PV-linear-pagetables-by-default.patch (nonexistent) @@ -1,82 +0,0 @@ -From 9a4b34729f1bb92eea1e1efe52e6face9f0b17ae Mon Sep 17 00:00:00 2001 -From: George Dunlap -Date: Fri, 22 Sep 2017 11:46:55 +0100 -Subject: [PATCH 2/2] x86/mm: Disable PV linear pagetables by default - -Allowing pagetables to point to other pagetables of the same level -(often called 'linear pagetables') has been included in Xen since its -inception. But it is not used by the most common PV guests (Linux, -NetBSD, minios), and has been the source of a number of subtle -reference-counting bugs. - -Add a command-line option to control whether PV linear pagetables are -allowed (disabled by default). - -Reported-by: Jann Horn -Signed-off-by: George Dunlap -Reviewed-by: Andrew Cooper ---- -Changes since v2: -- s/_/-/; in command-line option -- Added __read_mostly ---- - docs/misc/xen-command-line.markdown | 15 +++++++++++++++ - xen/arch/x86/mm.c | 9 +++++++++ - 2 files changed, 24 insertions(+) - -diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown -index 73f5265fc6..061aff5edc 100644 ---- a/docs/misc/xen-command-line.markdown -+++ b/docs/misc/xen-command-line.markdown -@@ -1280,6 +1280,21 @@ The following resources are available: - CDP, one COS will corespond two CBMs other than one with CAT, due to the - sum of CBMs is fixed, that means actual `cos_max` in use will automatically - reduce to half when CDP is enabled. -+ -+### pv-linear-pt -+> `= ` -+ -+> Default: `false` -+ -+Allow PV guests to have pagetable entries pointing to other pagetables -+of the same level (i.e., allowing L2 PTEs to point to other L2 pages). -+This technique is often called "linear pagetables", and is sometimes -+used to allow operating systems a simple way to consistently map the -+current process's pagetables into its own virtual address space. -+ -+None of the most common PV operating systems (Linux, NetBSD, MiniOS) -+use this technique, but there may be custom operating systems which -+do. - - ### reboot - > `= t[riple] | k[bd] | a[cpi] | p[ci] | P[ower] | e[fi] | n[o] [, [w]arm | [c]old]` -diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c -index e81a461b91..f748d4a221 100644 ---- a/xen/arch/x86/mm.c -+++ b/xen/arch/x86/mm.c -@@ -799,6 +799,9 @@ static void dec_linear_uses(struct page_info *pg) - * frame if it is mapped by a different root table. This is sufficient and - * also necessary to allow validation of a root table mapping itself. - */ -+static bool_t __read_mostly pv_linear_pt_enable = 0; -+boolean_param("pv-linear-pt", pv_linear_pt_enable); -+ - #define define_get_linear_pagetable(level) \ - static int \ - get_##level##_linear_pagetable( \ -@@ -808,6 +811,12 @@ get_##level##_linear_pagetable( \ - struct page_info *page; \ - unsigned long pfn; \ - \ -+ if ( !pv_linear_pt_enable ) \ -+ { \ -+ MEM_LOG("Attempt to create linear p.t. (feature disabled)"); \ -+ return 0; \ -+ } \ -+ \ - if ( (level##e_get_flags(pde) & _PAGE_RW) ) \ - { \ - MEM_LOG("Attempt to create linear p.t. with write perms"); \ --- -2.14.1 - Property changes on: head/emulators/xen-kernel/files/0002-x86-mm-Disable-PV-linear-pagetables-by-default.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/0001-x86-dont-allow-MSI-pIRQ-mapping-on-unowned-device.patch =================================================================== --- head/emulators/xen-kernel/files/0001-x86-dont-allow-MSI-pIRQ-mapping-on-unowned-device.patch (revision 475253) +++ head/emulators/xen-kernel/files/0001-x86-dont-allow-MSI-pIRQ-mapping-on-unowned-device.patch (nonexistent) @@ -1,27 +0,0 @@ -From: Jan Beulich -Subject: x86: don't allow MSI pIRQ mapping on unowned device - -MSI setup should be permitted only for existing devices owned by the -respective guest (the operation may still be carried out by the domain -controlling that guest). - -This is part of XSA-237. - -Reported-by: HW42 -Signed-off-by: Jan Beulich -Reviewed-by: Andrew Cooper - ---- a/xen/arch/x86/irq.c -+++ b/xen/arch/x86/irq.c -@@ -1964,7 +1964,10 @@ int map_domain_pirq( - if ( !cpu_has_apic ) - goto done; - -- pdev = pci_get_pdev(msi->seg, msi->bus, msi->devfn); -+ pdev = pci_get_pdev_by_domain(d, msi->seg, msi->bus, msi->devfn); -+ if ( !pdev ) -+ goto done; -+ - ret = pci_enable_msi(msi, &msi_desc); - if ( ret ) - { Property changes on: head/emulators/xen-kernel/files/0001-x86-dont-allow-MSI-pIRQ-mapping-on-unowned-device.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/0001-x86-entry-Remove-support-for-partial-cpu_user_regs-f.patch =================================================================== --- head/emulators/xen-kernel/files/0001-x86-entry-Remove-support-for-partial-cpu_user_regs-f.patch (revision 475253) +++ head/emulators/xen-kernel/files/0001-x86-entry-Remove-support-for-partial-cpu_user_regs-f.patch (nonexistent) @@ -1,399 +0,0 @@ -From 0e6c6fc449000d97f9fa87ed1fbe23f0cf21406b Mon Sep 17 00:00:00 2001 -From: Andrew Cooper -Date: Wed, 17 Jan 2018 17:22:34 +0100 -Subject: [PATCH] x86/entry: Remove support for partial cpu_user_regs frames - -Save all GPRs on entry to Xen. - -The entry_int82() path is via a DPL1 gate, only usable by 32bit PV guests, so -can get away with only saving the 32bit registers. All other entrypoints can -be reached from 32 or 64bit contexts. - -This is part of XSA-254. - -Signed-off-by: Andrew Cooper -Reviewed-by: Wei Liu -Acked-by: Jan Beulich -master commit: f9eb74789af77e985ae653193f3622263499f674 -master date: 2018-01-05 19:57:07 +0000 ---- - tools/tests/x86_emulator/x86_emulate.c | 1 - - xen/arch/x86/domain.c | 1 - - xen/arch/x86/traps.c | 2 - - xen/arch/x86/x86_64/compat/entry.S | 7 ++- - xen/arch/x86/x86_64/entry.S | 12 ++-- - xen/arch/x86/x86_64/traps.c | 13 ++-- - xen/arch/x86/x86_emulate.c | 1 - - xen/arch/x86/x86_emulate/x86_emulate.c | 8 +-- - xen/common/wait.c | 1 - - xen/include/asm-x86/asm_defns.h | 107 +++------------------------------ - 10 files changed, 26 insertions(+), 127 deletions(-) - -diff --git a/tools/tests/x86_emulator/x86_emulate.c b/tools/tests/x86_emulator/x86_emulate.c -index 10e3f61baa..c12527a50b 100644 ---- a/tools/tests/x86_emulator/x86_emulate.c -+++ b/tools/tests/x86_emulator/x86_emulate.c -@@ -24,7 +24,6 @@ typedef bool bool_t; - #endif - - #define cpu_has_amd_erratum(nr) 0 --#define mark_regs_dirty(r) ((void)(r)) - - #define __packed __attribute__((packed)) - -diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c -index ceeadabbfd..6539b75fa7 100644 ---- a/xen/arch/x86/domain.c -+++ b/xen/arch/x86/domain.c -@@ -148,7 +148,6 @@ static void noreturn continue_idle_domain(struct vcpu *v) - static void noreturn continue_nonidle_domain(struct vcpu *v) - { - check_wakeup_from_wait(); -- mark_regs_dirty(guest_cpu_user_regs()); - reset_stack_and_jump(ret_from_intr); - } - -diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c -index 05b4b0811d..0928c9b235 100644 ---- a/xen/arch/x86/traps.c -+++ b/xen/arch/x86/traps.c -@@ -2456,7 +2456,6 @@ static int emulate_privileged_op(struct cpu_user_regs *regs) - goto fail; - if ( admin_io_okay(port, op_bytes, currd) ) - { -- mark_regs_dirty(regs); - io_emul(regs); - } - else -@@ -2486,7 +2485,6 @@ static int emulate_privileged_op(struct cpu_user_regs *regs) - goto fail; - if ( admin_io_okay(port, op_bytes, currd) ) - { -- mark_regs_dirty(regs); - io_emul(regs); - if ( (op_bytes == 1) && pv_post_outb_hook ) - pv_post_outb_hook(port, regs->eax); -diff --git a/xen/arch/x86/x86_64/compat/entry.S b/xen/arch/x86/x86_64/compat/entry.S -index 794bb44266..7ee01597a3 100644 ---- a/xen/arch/x86/x86_64/compat/entry.S -+++ b/xen/arch/x86/x86_64/compat/entry.S -@@ -15,7 +15,8 @@ - ENTRY(compat_hypercall) - ASM_CLAC - pushq $0 -- SAVE_VOLATILE type=TRAP_syscall compat=1 -+ movl $TRAP_syscall, 4(%rsp) -+ SAVE_ALL compat=1 /* DPL1 gate, restricted to 32bit PV guests only. */ - CR4_PV32_RESTORE - - cmpb $0,untrusted_msi(%rip) -@@ -127,7 +128,6 @@ compat_test_guest_events: - /* %rbx: struct vcpu */ - compat_process_softirqs: - sti -- andl $~TRAP_regs_partial,UREGS_entry_vector(%rsp) - call do_softirq - jmp compat_test_all_events - -@@ -268,7 +268,8 @@ ENTRY(cstar_enter) - pushq $FLAT_USER_CS32 - pushq %rcx - pushq $0 -- SAVE_VOLATILE TRAP_syscall -+ movl $TRAP_syscall, 4(%rsp) -+ SAVE_ALL - GET_CURRENT(bx) - movq VCPU_domain(%rbx),%rcx - cmpb $0,DOMAIN_is_32bit_pv(%rcx) -diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S -index 708d9b9402..cebb1e4f4f 100644 ---- a/xen/arch/x86/x86_64/entry.S -+++ b/xen/arch/x86/x86_64/entry.S -@@ -97,7 +97,8 @@ ENTRY(lstar_enter) - pushq $FLAT_KERNEL_CS64 - pushq %rcx - pushq $0 -- SAVE_VOLATILE TRAP_syscall -+ movl $TRAP_syscall, 4(%rsp) -+ SAVE_ALL - GET_CURRENT(bx) - testb $TF_kernel_mode,VCPU_thread_flags(%rbx) - jz switch_to_kernel -@@ -192,7 +193,6 @@ test_guest_events: - /* %rbx: struct vcpu */ - process_softirqs: - sti -- SAVE_PRESERVED - call do_softirq - jmp test_all_events - -@@ -246,7 +246,8 @@ GLOBAL(sysenter_eflags_saved) - pushq $3 /* ring 3 null cs */ - pushq $0 /* null rip */ - pushq $0 -- SAVE_VOLATILE TRAP_syscall -+ movl $TRAP_syscall, 4(%rsp) -+ SAVE_ALL - GET_CURRENT(bx) - cmpb $0,VCPU_sysenter_disables_events(%rbx) - movq VCPU_sysenter_addr(%rbx),%rax -@@ -263,7 +264,6 @@ UNLIKELY_END(sysenter_nt_set) - leal (,%rcx,TBF_INTERRUPT),%ecx - UNLIKELY_START(z, sysenter_gpf) - movq VCPU_trap_ctxt(%rbx),%rsi -- SAVE_PRESERVED - movl $TRAP_gp_fault,UREGS_entry_vector(%rsp) - movl %eax,TRAPBOUNCE_error_code(%rdx) - movq TRAP_gp_fault * TRAPINFO_sizeof + TRAPINFO_eip(%rsi),%rax -@@ -281,7 +281,8 @@ UNLIKELY_END(sysenter_gpf) - ENTRY(int80_direct_trap) - ASM_CLAC - pushq $0 -- SAVE_VOLATILE 0x80 -+ movl $0x80, 4(%rsp) -+ SAVE_ALL - - cmpb $0,untrusted_msi(%rip) - UNLIKELY_START(ne, msi_check) -@@ -309,7 +310,6 @@ int80_slow_path: - * IDT entry with DPL==0. - */ - movl $((0x80 << 3) | X86_XEC_IDT),UREGS_error_code(%rsp) -- SAVE_PRESERVED - movl $TRAP_gp_fault,UREGS_entry_vector(%rsp) - /* A GPF wouldn't have incremented the instruction pointer. */ - subq $2,UREGS_rip(%rsp) -diff --git a/xen/arch/x86/x86_64/traps.c b/xen/arch/x86/x86_64/traps.c -index 22816100fd..bf8dfcbdee 100644 ---- a/xen/arch/x86/x86_64/traps.c -+++ b/xen/arch/x86/x86_64/traps.c -@@ -81,15 +81,10 @@ static void _show_registers( - regs->rbp, regs->rsp, regs->r8); - printk("r9: %016lx r10: %016lx r11: %016lx\n", - regs->r9, regs->r10, regs->r11); -- if ( !(regs->entry_vector & TRAP_regs_partial) ) -- { -- printk("r12: %016lx r13: %016lx r14: %016lx\n", -- regs->r12, regs->r13, regs->r14); -- printk("r15: %016lx cr0: %016lx cr4: %016lx\n", -- regs->r15, crs[0], crs[4]); -- } -- else -- printk("cr0: %016lx cr4: %016lx\n", crs[0], crs[4]); -+ printk("r12: %016lx r13: %016lx r14: %016lx\n", -+ regs->r12, regs->r13, regs->r14); -+ printk("r15: %016lx cr0: %016lx cr4: %016lx\n", -+ regs->r15, crs[0], crs[4]); - printk("cr3: %016lx cr2: %016lx\n", crs[3], crs[2]); - printk("fsb: %016lx gsb: %016lx gss: %016lx\n", - crs[5], crs[6], crs[7]); -diff --git a/xen/arch/x86/x86_emulate.c b/xen/arch/x86/x86_emulate.c -index 28132b5dbc..43730026c2 100644 ---- a/xen/arch/x86/x86_emulate.c -+++ b/xen/arch/x86/x86_emulate.c -@@ -11,7 +11,6 @@ - - #include - #include --#include /* mark_regs_dirty() */ - #include /* current_cpu_info */ - #include /* cpu_has_amd_erratum() */ - -diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c b/xen/arch/x86/x86_emulate/x86_emulate.c -index 4ee3df9247..fcfe9f7de7 100644 ---- a/xen/arch/x86/x86_emulate/x86_emulate.c -+++ b/xen/arch/x86/x86_emulate/x86_emulate.c -@@ -1424,10 +1424,10 @@ decode_register( - case 9: p = ®s->r9; break; - case 10: p = ®s->r10; break; - case 11: p = ®s->r11; break; -- case 12: mark_regs_dirty(regs); p = ®s->r12; break; -- case 13: mark_regs_dirty(regs); p = ®s->r13; break; -- case 14: mark_regs_dirty(regs); p = ®s->r14; break; -- case 15: mark_regs_dirty(regs); p = ®s->r15; break; -+ case 12: p = ®s->r12; break; -+ case 13: p = ®s->r13; break; -+ case 14: p = ®s->r14; break; -+ case 15: p = ®s->r15; break; - #endif - default: BUG(); p = NULL; break; - } -diff --git a/xen/common/wait.c b/xen/common/wait.c -index 4ac98c07fe..398f653174 100644 ---- a/xen/common/wait.c -+++ b/xen/common/wait.c -@@ -128,7 +128,6 @@ static void __prepare_to_wait(struct waitqueue_vcpu *wqv) - unsigned long dummy; - u32 entry_vector = cpu_info->guest_cpu_user_regs.entry_vector; - -- cpu_info->guest_cpu_user_regs.entry_vector &= ~TRAP_regs_partial; - ASSERT(wqv->esp == 0); - - /* Save current VCPU affinity; force wakeup on *this* CPU only. */ -diff --git a/xen/include/asm-x86/asm_defns.h b/xen/include/asm-x86/asm_defns.h -index 279d70298f..6e5c079ad8 100644 ---- a/xen/include/asm-x86/asm_defns.h -+++ b/xen/include/asm-x86/asm_defns.h -@@ -17,15 +17,6 @@ - void ret_from_intr(void); - #endif - --#ifdef CONFIG_FRAME_POINTER --/* Indicate special exception stack frame by inverting the frame pointer. */ --#define SETUP_EXCEPTION_FRAME_POINTER(offs) \ -- leaq offs(%rsp),%rbp; \ -- notq %rbp --#else --#define SETUP_EXCEPTION_FRAME_POINTER(offs) --#endif -- - #ifndef NDEBUG - #define ASSERT_INTERRUPT_STATUS(x, msg) \ - pushf; \ -@@ -42,31 +33,6 @@ void ret_from_intr(void); - #define ASSERT_INTERRUPTS_DISABLED \ - ASSERT_INTERRUPT_STATUS(z, "INTERRUPTS DISABLED") - --/* -- * This flag is set in an exception frame when registers R12-R15 did not get -- * saved. -- */ --#define _TRAP_regs_partial 16 --#define TRAP_regs_partial (1 << _TRAP_regs_partial) --/* -- * This flag gets set in an exception frame when registers R12-R15 possibly -- * get modified from their originally saved values and hence need to be -- * restored even if the normal call flow would restore register values. -- * -- * The flag being set implies _TRAP_regs_partial to be unset. Restoring -- * R12-R15 thus is -- * - required when this flag is set, -- * - safe when _TRAP_regs_partial is unset. -- */ --#define _TRAP_regs_dirty 17 --#define TRAP_regs_dirty (1 << _TRAP_regs_dirty) -- --#define mark_regs_dirty(r) ({ \ -- struct cpu_user_regs *r__ = (r); \ -- ASSERT(!((r__)->entry_vector & TRAP_regs_partial)); \ -- r__->entry_vector |= TRAP_regs_dirty; \ --}) -- - #ifdef __ASSEMBLY__ - # define _ASM_EX(p) p-. - #else -@@ -236,7 +202,7 @@ static always_inline void stac(void) - #endif - - #ifdef __ASSEMBLY__ --.macro SAVE_ALL op -+.macro SAVE_ALL op, compat=0 - .ifeqs "\op", "CLAC" - ASM_CLAC - .else -@@ -255,40 +221,6 @@ static always_inline void stac(void) - movq %rdx,UREGS_rdx(%rsp) - movq %rcx,UREGS_rcx(%rsp) - movq %rax,UREGS_rax(%rsp) -- movq %r8,UREGS_r8(%rsp) -- movq %r9,UREGS_r9(%rsp) -- movq %r10,UREGS_r10(%rsp) -- movq %r11,UREGS_r11(%rsp) -- movq %rbx,UREGS_rbx(%rsp) -- movq %rbp,UREGS_rbp(%rsp) -- SETUP_EXCEPTION_FRAME_POINTER(UREGS_rbp) -- movq %r12,UREGS_r12(%rsp) -- movq %r13,UREGS_r13(%rsp) -- movq %r14,UREGS_r14(%rsp) -- movq %r15,UREGS_r15(%rsp) --.endm -- --/* -- * Save all registers not preserved by C code or used in entry/exit code. Mark -- * the frame as partial. -- * -- * @type: exception type -- * @compat: R8-R15 don't need saving, and the frame nevertheless is complete -- */ --.macro SAVE_VOLATILE type compat=0 --.if \compat -- movl $\type,UREGS_entry_vector-UREGS_error_code(%rsp) --.else -- movl $\type|TRAP_regs_partial,\ -- UREGS_entry_vector-UREGS_error_code(%rsp) --.endif -- addq $-(UREGS_error_code-UREGS_r15),%rsp -- cld -- movq %rdi,UREGS_rdi(%rsp) -- movq %rsi,UREGS_rsi(%rsp) -- movq %rdx,UREGS_rdx(%rsp) -- movq %rcx,UREGS_rcx(%rsp) -- movq %rax,UREGS_rax(%rsp) - .if !\compat - movq %r8,UREGS_r8(%rsp) - movq %r9,UREGS_r9(%rsp) -@@ -297,20 +229,17 @@ static always_inline void stac(void) - .endif - movq %rbx,UREGS_rbx(%rsp) - movq %rbp,UREGS_rbp(%rsp) -- SETUP_EXCEPTION_FRAME_POINTER(UREGS_rbp) --.endm -- --/* -- * Complete a frame potentially only partially saved. -- */ --.macro SAVE_PRESERVED -- btrl $_TRAP_regs_partial,UREGS_entry_vector(%rsp) -- jnc 987f -+#ifdef CONFIG_FRAME_POINTER -+/* Indicate special exception stack frame by inverting the frame pointer. */ -+ leaq UREGS_rbp(%rsp), %rbp -+ notq %rbp -+#endif -+.if !\compat - movq %r12,UREGS_r12(%rsp) - movq %r13,UREGS_r13(%rsp) - movq %r14,UREGS_r14(%rsp) - movq %r15,UREGS_r15(%rsp) --987: -+.endif - .endm - - #define LOAD_ONE_REG(reg, compat) \ -@@ -351,33 +280,13 @@ static always_inline void stac(void) - * @compat: R8-R15 don't need reloading - */ - .macro RESTORE_ALL adj=0 compat=0 --.if !\compat -- testl $TRAP_regs_dirty,UREGS_entry_vector(%rsp) --.endif - LOAD_C_CLOBBERED \compat - .if !\compat -- jz 987f - movq UREGS_r15(%rsp),%r15 - movq UREGS_r14(%rsp),%r14 - movq UREGS_r13(%rsp),%r13 - movq UREGS_r12(%rsp),%r12 --#ifndef NDEBUG -- .subsection 1 --987: testl $TRAP_regs_partial,UREGS_entry_vector(%rsp) -- jnz 987f -- cmpq UREGS_r15(%rsp),%r15 -- jne 789f -- cmpq UREGS_r14(%rsp),%r14 -- jne 789f -- cmpq UREGS_r13(%rsp),%r13 -- jne 789f -- cmpq UREGS_r12(%rsp),%r12 -- je 987f --789: BUG /* Corruption of partial register state. */ -- .subsection 0 --#endif - .endif --987: - LOAD_ONE_REG(bp, \compat) - LOAD_ONE_REG(bx, \compat) - subq $-(UREGS_error_code-UREGS_r15+\adj), %rsp --- -2.15.1 - Property changes on: head/emulators/xen-kernel/files/0001-x86-entry-Remove-support-for-partial-cpu_user_regs-f.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/0001-x86-drop-unneeded-__packed-attributes.patch =================================================================== --- head/emulators/xen-kernel/files/0001-x86-drop-unneeded-__packed-attributes.patch (revision 475253) +++ head/emulators/xen-kernel/files/0001-x86-drop-unneeded-__packed-attributes.patch (nonexistent) @@ -1,122 +0,0 @@ -From 7de7d07d47cc389bc341f5524ea8415c3c78e378 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= -Date: Fri, 10 Mar 2017 01:05:51 +0900 -Subject: [PATCH 1/2] x86: drop unneeded __packed attributes -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -There where a couple of unneeded packed attributes in several x86-specific -structures, that are obviously aligned. The only non-trivial one is -vmcb_struct, which has been checked to have the same layout with and without -the packed attribute using pahole. In that case add a build-time size check to -be on the safe side. - -No functional change is expected as a result of this commit. - -Signed-off-by: Roger Pau Monné -Reviewed-by: Jan Beulich -Reviewed-by: Boris Ostrovsky ---- - xen/arch/x86/hvm/svm/vmcb.c | 3 +++ - xen/arch/x86/x86_emulate/x86_emulate.h | 4 ++-- - xen/include/asm-x86/hvm/svm/vmcb.h | 12 ++++++------ - 3 files changed, 11 insertions(+), 8 deletions(-) - -diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c -index 9ea014f..f982fc9 100644 ---- a/xen/arch/x86/hvm/svm/vmcb.c -+++ b/xen/arch/x86/hvm/svm/vmcb.c -@@ -72,6 +72,9 @@ static int construct_vmcb(struct vcpu *v) - struct arch_svm_struct *arch_svm = &v->arch.hvm_svm; - struct vmcb_struct *vmcb = arch_svm->vmcb; - -+ /* Build-time check of the size of VMCB AMD structure. */ -+ BUILD_BUG_ON(sizeof(*vmcb) != PAGE_SIZE); -+ - vmcb->_general1_intercepts = - GENERAL1_INTERCEPT_INTR | GENERAL1_INTERCEPT_NMI | - GENERAL1_INTERCEPT_SMI | GENERAL1_INTERCEPT_INIT | -diff --git a/xen/arch/x86/x86_emulate/x86_emulate.h b/xen/arch/x86/x86_emulate/x86_emulate.h -index 17c86f3..bbdf16a 100644 ---- a/xen/arch/x86/x86_emulate/x86_emulate.h -+++ b/xen/arch/x86/x86_emulate/x86_emulate.h -@@ -71,7 +71,7 @@ enum x86_swint_emulation { - * Attribute for segment selector. This is a copy of bit 40:47 & 52:55 of the - * segment descriptor. It happens to match the format of an AMD SVM VMCB. - */ --typedef union __packed segment_attributes { -+typedef union segment_attributes { - uint16_t bytes; - struct - { -@@ -91,7 +91,7 @@ typedef union __packed segment_attributes { - * Full state of a segment register (visible and hidden portions). - * Again, this happens to match the format of an AMD SVM VMCB. - */ --struct __packed segment_register { -+struct segment_register { - uint16_t sel; - segment_attributes_t attr; - uint32_t limit; -diff --git a/xen/include/asm-x86/hvm/svm/vmcb.h b/xen/include/asm-x86/hvm/svm/vmcb.h -index bad2382..a3cd1b1 100644 ---- a/xen/include/asm-x86/hvm/svm/vmcb.h -+++ b/xen/include/asm-x86/hvm/svm/vmcb.h -@@ -308,7 +308,7 @@ enum VMEXIT_EXITCODE - /* Definition of segment state is borrowed by the generic HVM code. */ - typedef struct segment_register svm_segment_register_t; - --typedef union __packed -+typedef union - { - u64 bytes; - struct -@@ -322,7 +322,7 @@ typedef union __packed - } fields; - } eventinj_t; - --typedef union __packed -+typedef union - { - u64 bytes; - struct -@@ -340,7 +340,7 @@ typedef union __packed - } fields; - } vintr_t; - --typedef union __packed -+typedef union - { - u64 bytes; - struct -@@ -357,7 +357,7 @@ typedef union __packed - } fields; - } ioio_info_t; - --typedef union __packed -+typedef union - { - u64 bytes; - struct -@@ -366,7 +366,7 @@ typedef union __packed - } fields; - } lbrctrl_t; - --typedef union __packed -+typedef union - { - uint32_t bytes; - struct -@@ -401,7 +401,7 @@ typedef union __packed - #define IOPM_SIZE (12 * 1024) - #define MSRPM_SIZE (8 * 1024) - --struct __packed vmcb_struct { -+struct vmcb_struct { - u32 _cr_intercepts; /* offset 0x00 - cleanbit 0 */ - u32 _dr_intercepts; /* offset 0x04 - cleanbit 0 */ - u32 _exception_intercepts; /* offset 0x08 - cleanbit 0 */ --- -2.10.1 (Apple Git-78) - Property changes on: head/emulators/xen-kernel/files/0001-x86-drop-unneeded-__packed-attributes.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/0001-p2m-Always-check-to-see-if-removing-a-p2m-entry-actu.patch =================================================================== --- head/emulators/xen-kernel/files/0001-p2m-Always-check-to-see-if-removing-a-p2m-entry-actu.patch (revision 475253) +++ head/emulators/xen-kernel/files/0001-p2m-Always-check-to-see-if-removing-a-p2m-entry-actu.patch (nonexistent) @@ -1,176 +0,0 @@ -From f345ca185e0c042ed12bf929a9e93efaf33397bb Mon Sep 17 00:00:00 2001 -From: George Dunlap -Date: Fri, 10 Nov 2017 16:53:54 +0000 -Subject: [PATCH 1/2] p2m: Always check to see if removing a p2m entry actually - worked - -The PoD zero-check functions speculatively remove memory from the p2m, -then check to see if it's completely zeroed, before putting it in the -cache. - -Unfortunately, the p2m_set_entry() calls may fail if the underlying -pagetable structure needs to change and the domain has exhausted its -p2m memory pool: for instance, if we're removing a 2MiB region out of -a 1GiB entry (in the p2m_pod_zero_check_superpage() case), or a 4k -region out of a 2MiB or larger entry (in the p2m_pod_zero_check() -case); and the return value is not checked. - -The underlying mfn will then be added into the PoD cache, and at some -point mapped into another location in the p2m. If the guest -afterwards ballons out this memory, it will be freed to the hypervisor -and potentially reused by another domain, in spite of the fact that -the original domain still has writable mappings to it. - -There are several places where p2m_set_entry() shouldn't be able to -fail, as it is guaranteed to write an entry of the same order that -succeeded before. Add a backstop of crashing the domain just in case, -and an ASSERT_UNREACHABLE() to flag up the broken assumption on debug -builds. - -While we're here, use PAGE_ORDER_2M rather than a magic constant. - -This is part of XSA-247. - -Reported-by: George Dunlap -Signed-off-by: George Dunlap -Reviewed-by: Jan Beulich ---- -v4: -- Removed some training whitespace -v3: -- Reformat reset clause to be more compact -- Make sure to set map[i] = NULL when unmapping in case we need to bail -v2: -- Crash a domain if a p2m_set_entry we think cannot fail fails anyway. ---- - xen/arch/x86/mm/p2m-pod.c | 77 +++++++++++++++++++++++++++++++++++++---------- - 1 file changed, 61 insertions(+), 16 deletions(-) - -diff --git a/xen/arch/x86/mm/p2m-pod.c b/xen/arch/x86/mm/p2m-pod.c -index 87082cf65f..5ec8a37949 100644 ---- a/xen/arch/x86/mm/p2m-pod.c -+++ b/xen/arch/x86/mm/p2m-pod.c -@@ -754,8 +754,10 @@ p2m_pod_zero_check_superpage(struct p2m_domain *p2m, unsigned long gfn) - } - - /* Try to remove the page, restoring old mapping if it fails. */ -- p2m_set_entry(p2m, gfn, _mfn(INVALID_MFN), PAGE_ORDER_2M, -- p2m_populate_on_demand, p2m->default_access); -+ if ( p2m_set_entry(p2m, gfn, _mfn(INVALID_MFN), PAGE_ORDER_2M, -+ p2m_populate_on_demand, p2m->default_access) ) -+ goto out; -+ - p2m_tlb_flush_sync(p2m); - - /* Make none of the MFNs are used elsewhere... for example, mapped -@@ -812,9 +814,18 @@ p2m_pod_zero_check_superpage(struct p2m_domain *p2m, unsigned long gfn) - ret = SUPERPAGE_PAGES; - - out_reset: -- if ( reset ) -- p2m_set_entry(p2m, gfn, mfn0, 9, type0, p2m->default_access); -- -+ /* -+ * This p2m_set_entry() call shouldn't be able to fail, since the same order -+ * on the same gfn succeeded above. If that turns out to be false, crashing -+ * the domain should be the safest way of making sure we don't leak memory. -+ */ -+ if ( reset && p2m_set_entry(p2m, gfn, mfn0, PAGE_ORDER_2M, -+ type0, p2m->default_access) ) -+ { -+ ASSERT_UNREACHABLE(); -+ domain_crash(d); -+ } -+ - out: - gfn_unlock(p2m, gfn, SUPERPAGE_ORDER); - return ret; -@@ -871,19 +882,30 @@ p2m_pod_zero_check(struct p2m_domain *p2m, unsigned long *gfns, int count) - } - - /* Try to remove the page, restoring old mapping if it fails. */ -- p2m_set_entry(p2m, gfns[i], _mfn(INVALID_MFN), PAGE_ORDER_4K, -- p2m_populate_on_demand, p2m->default_access); -+ if ( p2m_set_entry(p2m, gfns[i], _mfn(INVALID_MFN), PAGE_ORDER_4K, -+ p2m_populate_on_demand, p2m->default_access) ) -+ goto skip; - - /* See if the page was successfully unmapped. (Allow one refcount - * for being allocated to a domain.) */ - if ( (mfn_to_page(mfns[i])->count_info & PGC_count_mask) > 1 ) - { -+ /* -+ * If the previous p2m_set_entry call succeeded, this one shouldn't -+ * be able to fail. If it does, crashing the domain should be safe. -+ */ -+ if ( p2m_set_entry(p2m, gfns[i], mfns[i], PAGE_ORDER_4K, -+ types[i], p2m->default_access) ) -+ { -+ ASSERT_UNREACHABLE(); -+ domain_crash(d); -+ goto out_unmap; -+ } -+ -+ skip: - unmap_domain_page(map[i]); - map[i] = NULL; - -- p2m_set_entry(p2m, gfns[i], mfns[i], PAGE_ORDER_4K, -- types[i], p2m->default_access); -- - continue; - } - } -@@ -902,12 +924,25 @@ p2m_pod_zero_check(struct p2m_domain *p2m, unsigned long *gfns, int count) - - unmap_domain_page(map[i]); - -- /* See comment in p2m_pod_zero_check_superpage() re gnttab -- * check timing. */ -- if ( j < PAGE_SIZE/sizeof(*map[i]) ) -+ map[i] = NULL; -+ -+ /* -+ * See comment in p2m_pod_zero_check_superpage() re gnttab -+ * check timing. -+ */ -+ if ( j < (PAGE_SIZE / sizeof(*map[i])) ) - { -- p2m_set_entry(p2m, gfns[i], mfns[i], PAGE_ORDER_4K, -- types[i], p2m->default_access); -+ /* -+ * If the previous p2m_set_entry call succeeded, this one shouldn't -+ * be able to fail. If it does, crashing the domain should be safe. -+ */ -+ if ( p2m_set_entry(p2m, gfns[i], mfns[i], PAGE_ORDER_4K, -+ types[i], p2m->default_access) ) -+ { -+ ASSERT_UNREACHABLE(); -+ domain_crash(d); -+ goto out_unmap; -+ } - } - else - { -@@ -931,7 +966,17 @@ p2m_pod_zero_check(struct p2m_domain *p2m, unsigned long *gfns, int count) - p2m->pod.entry_count++; - } - } -- -+ -+ return; -+ -+out_unmap: -+ /* -+ * Something went wrong, probably crashing the domain. Unmap -+ * everything and return. -+ */ -+ for ( i = 0; i < count; i++ ) -+ if ( map[i] ) -+ unmap_domain_page(map[i]); - } - - #define POD_SWEEP_LIMIT 1024 --- -2.15.0 - Property changes on: head/emulators/xen-kernel/files/0001-p2m-Always-check-to-see-if-removing-a-p2m-entry-actu.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/0002-x86-enforce-proper-privilege-when-mapping-pIRQ-s.patch =================================================================== --- head/emulators/xen-kernel/files/0002-x86-enforce-proper-privilege-when-mapping-pIRQ-s.patch (revision 475253) +++ head/emulators/xen-kernel/files/0002-x86-enforce-proper-privilege-when-mapping-pIRQ-s.patch (nonexistent) @@ -1,66 +0,0 @@ -From: Jan Beulich -Subject: x86: enforce proper privilege when (un)mapping pIRQ-s - -(Un)mapping of IRQs, just like other RESOURCE__ADD* / RESOURCE__REMOVE* -actions (in FLASK terms) should be XSM_DM_PRIV rather than XSM_TARGET. -This in turn requires bypassing the XSM check in physdev_unmap_pirq() -for the HVM emuirq case just like is being done in physdev_map_pirq(). -The primary goal security wise, however, is to no longer allow HVM -guests, by specifying their own domain ID instead of DOMID_SELF, to -enter code paths intended for PV guest and the control domains of HVM -guests only. - -This is part of XSA-237. - -Reported-by: HW42 -Signed-off-by: Jan Beulich -Reviewed-by: George Dunlap - ---- a/xen/arch/x86/physdev.c -+++ b/xen/arch/x86/physdev.c -@@ -110,7 +110,7 @@ int physdev_map_pirq(domid_t domid, int - if ( d == NULL ) - return -ESRCH; - -- ret = xsm_map_domain_pirq(XSM_TARGET, d); -+ ret = xsm_map_domain_pirq(XSM_DM_PRIV, d); - if ( ret ) - goto free_domain; - -@@ -255,13 +255,14 @@ int physdev_map_pirq(domid_t domid, int - int physdev_unmap_pirq(domid_t domid, int pirq) - { - struct domain *d; -- int ret; -+ int ret = 0; - - d = rcu_lock_domain_by_any_id(domid); - if ( d == NULL ) - return -ESRCH; - -- ret = xsm_unmap_domain_pirq(XSM_TARGET, d); -+ if ( domid != DOMID_SELF || !is_hvm_domain(d) ) -+ ret = xsm_unmap_domain_pirq(XSM_DM_PRIV, d); - if ( ret ) - goto free_domain; - ---- a/xen/include/xsm/dummy.h -+++ b/xen/include/xsm/dummy.h -@@ -453,7 +453,7 @@ static XSM_INLINE char *xsm_show_irq_sid - - static XSM_INLINE int xsm_map_domain_pirq(XSM_DEFAULT_ARG struct domain *d) - { -- XSM_ASSERT_ACTION(XSM_TARGET); -+ XSM_ASSERT_ACTION(XSM_DM_PRIV); - return xsm_default_action(action, current->domain, d); - } - -@@ -465,7 +465,7 @@ static XSM_INLINE int xsm_map_domain_irq - - static XSM_INLINE int xsm_unmap_domain_pirq(XSM_DEFAULT_ARG struct domain *d) - { -- XSM_ASSERT_ACTION(XSM_TARGET); -+ XSM_ASSERT_ACTION(XSM_DM_PRIV); - return xsm_default_action(action, current->domain, d); - } - Property changes on: head/emulators/xen-kernel/files/0002-x86-enforce-proper-privilege-when-mapping-pIRQ-s.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/0001-gnttab-Fix-handling-of-dev_bus_addr-during-unmap.patch =================================================================== --- head/emulators/xen-kernel/files/0001-gnttab-Fix-handling-of-dev_bus_addr-during-unmap.patch (revision 475253) +++ head/emulators/xen-kernel/files/0001-gnttab-Fix-handling-of-dev_bus_addr-during-unmap.patch (nonexistent) @@ -1,111 +0,0 @@ -From fd97f5f5ba9375163c8d8771fe551bb4a6423b36 Mon Sep 17 00:00:00 2001 -From: George Dunlap -Date: Thu, 15 Jun 2017 16:24:02 +0100 -Subject: [PATCH 1/4] gnttab: Fix handling of dev_bus_addr during unmap - -If a grant has been mapped with the GNTTAB_device_map flag, calling -grant_unmap_ref() with dev_bus_addr set to zero should cause the -GNTTAB_device_map part of the mapping to be left alone. - -Unfortunately, at the moment, op->dev_bus_addr is implicitly checked -before clearing the map and adjusting the pin count, but only the bits -above 12; and it is not checked at all before dropping page -references. This means a guest can repeatedly make such a call to -cause the reference count to drop to zero, causing the page to be -freed and re-used, even though it's still mapped in its pagetables. - -To fix this, always check op->dev_bus_addr explicitly for being -non-zero, as well as op->flag & GNTMAP_device_map, before doing -operations on the device_map. - -While we're here, make the logic a bit cleaner: - -* Always initialize op->frame to zero and set it from act->frame, to reduce the -chance of untrusted input being used - -* Explicitly check the full dev_bus_addr against act->frame << - PAGE_SHIFT, rather than ignoring the lower 12 bits - -This is part of XSA-224. - -Reported-by: Jan Beulich -Signed-off-by: George Dunlap -Signed-off-by: Jan Beulich ---- - xen/common/grant_table.c | 23 +++++++++++------------ - 1 file changed, 11 insertions(+), 12 deletions(-) - -diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c -index c4d73af..69cbdb6 100644 ---- a/xen/common/grant_table.c -+++ b/xen/common/grant_table.c -@@ -1089,8 +1089,6 @@ __gnttab_unmap_common( - ld = current->domain; - lgt = ld->grant_table; - -- op->frame = (unsigned long)(op->dev_bus_addr >> PAGE_SHIFT); -- - if ( unlikely(op->handle >= lgt->maptrack_limit) ) - { - gdprintk(XENLOG_INFO, "Bad handle (%d).\n", op->handle); -@@ -1174,16 +1172,14 @@ __gnttab_unmap_common( - goto act_release_out; - } - -- if ( op->frame == 0 ) -- { -- op->frame = act->frame; -- } -- else -+ op->frame = act->frame; -+ -+ if ( op->dev_bus_addr ) - { -- if ( unlikely(op->frame != act->frame) ) -+ if ( unlikely(op->dev_bus_addr != pfn_to_paddr(act->frame)) ) - PIN_FAIL(act_release_out, GNTST_general_error, -- "Bad frame number doesn't match gntref. (%lx != %lx)\n", -- op->frame, act->frame); -+ "Bus address doesn't match gntref (%"PRIx64" != %"PRIpaddr")\n", -+ op->dev_bus_addr, pfn_to_paddr(act->frame)); - - map->flags &= ~GNTMAP_device_map; - } -@@ -1276,7 +1272,8 @@ __gnttab_unmap_common_complete(struct gnttab_unmap_common *op) - else - status = &status_entry(rgt, op->ref); - -- if ( unlikely(op->frame != act->frame) ) -+ if ( op->dev_bus_addr && -+ unlikely(op->dev_bus_addr != pfn_to_paddr(act->frame)) ) - { - /* - * Suggests that __gntab_unmap_common failed early and so -@@ -1287,7 +1284,7 @@ __gnttab_unmap_common_complete(struct gnttab_unmap_common *op) - - pg = mfn_to_page(op->frame); - -- if ( op->flags & GNTMAP_device_map ) -+ if ( op->dev_bus_addr && (op->flags & GNTMAP_device_map) ) - { - if ( !is_iomem_page(act->frame) ) - { -@@ -1358,6 +1355,7 @@ __gnttab_unmap_grant_ref( - /* Intialise these in case common contains old state */ - common->new_addr = 0; - common->rd = NULL; -+ common->frame = 0; - - __gnttab_unmap_common(common); - op->status = common->status; -@@ -1422,6 +1420,7 @@ __gnttab_unmap_and_replace( - /* Intialise these in case common contains old state */ - common->dev_bus_addr = 0; - common->rd = NULL; -+ common->frame = 0; - - __gnttab_unmap_common(common); - op->status = common->status; --- -2.1.4 - Property changes on: head/emulators/xen-kernel/files/0001-gnttab-Fix-handling-of-dev_bus_addr-during-unmap.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/0005-x86-FLASK-fix-unmap-domain-IRQ-XSM-hook.patch =================================================================== --- head/emulators/xen-kernel/files/0005-x86-FLASK-fix-unmap-domain-IRQ-XSM-hook.patch (revision 475253) +++ head/emulators/xen-kernel/files/0005-x86-FLASK-fix-unmap-domain-IRQ-XSM-hook.patch (nonexistent) @@ -1,37 +0,0 @@ -From: Jan Beulich -Subject: x86/FLASK: fix unmap-domain-IRQ XSM hook - -The caller and the FLASK implementation of xsm_unmap_domain_irq() -disagreed about what the "data" argument points to in the MSI case: -Change both sides to pass/take a PCI device. - -This is part of XSA-237. - -Signed-off-by: Jan Beulich -Reviewed-by: Andrew Cooper - ---- a/xen/arch/x86/irq.c -+++ b/xen/arch/x86/irq.c -@@ -2144,7 +2144,8 @@ int unmap_domain_pirq(struct domain *d, - nr = msi_desc->msi.nvec; - } - -- ret = xsm_unmap_domain_irq(XSM_HOOK, d, irq, msi_desc); -+ ret = xsm_unmap_domain_irq(XSM_HOOK, d, irq, -+ msi_desc ? msi_desc->dev : NULL); - if ( ret ) - goto done; - ---- a/xen/xsm/flask/hooks.c -+++ b/xen/xsm/flask/hooks.c -@@ -915,8 +915,8 @@ static int flask_unmap_domain_msi (struc - u32 *sid, struct avc_audit_data *ad) - { - #ifdef CONFIG_HAS_PCI -- struct msi_info *msi = data; -- u32 machine_bdf = (msi->seg << 16) | (msi->bus << 8) | msi->devfn; -+ const struct pci_dev *pdev = data; -+ u32 machine_bdf = (pdev->seg << 16) | (pdev->bus << 8) | pdev->devfn; - - AVC_AUDIT_DATA_INIT(ad, DEV); - ad->device = machine_bdf; Property changes on: head/emulators/xen-kernel/files/0005-x86-FLASK-fix-unmap-domain-IRQ-XSM-hook.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/0002-x86-allow-Meltdown-band-aid-to-be-disabled.patch =================================================================== --- head/emulators/xen-kernel/files/0002-x86-allow-Meltdown-band-aid-to-be-disabled.patch (revision 475253) +++ head/emulators/xen-kernel/files/0002-x86-allow-Meltdown-band-aid-to-be-disabled.patch (nonexistent) @@ -1,163 +0,0 @@ -From e19d0af4ee2ae9e42a85db639fd6848e72f5658b Mon Sep 17 00:00:00 2001 -From: Jan Beulich -Date: Wed, 17 Jan 2018 17:24:59 +0100 -Subject: [PATCH 2/2] x86: allow Meltdown band-aid to be disabled - -First of all we don't need it on AMD systems. Additionally allow its use -to be controlled by command line option. For best backportability, this -intentionally doesn't use alternative instruction patching to achieve -the intended effect - while we likely want it, this will be later -follow-up. - -Signed-off-by: Jan Beulich -Reviewed-by: Andrew Cooper -master commit: e871e80c38547d9faefc6604532ba3e985e65873 -master date: 2018-01-16 17:50:59 +0100 ---- - docs/misc/xen-command-line.markdown | 12 ++++++++++++ - xen/arch/x86/domain.c | 7 +++++-- - xen/arch/x86/mm.c | 2 +- - xen/arch/x86/smpboot.c | 17 ++++++++++++++--- - xen/arch/x86/x86_64/entry.S | 2 ++ - 5 files changed, 34 insertions(+), 6 deletions(-) - -diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown -index 2dacb5d073..aecf9fd49d 100644 ---- a/docs/misc/xen-command-line.markdown -+++ b/docs/misc/xen-command-line.markdown -@@ -1621,6 +1621,18 @@ In the case that x2apic is in use, this option switches between physical and - clustered mode. The default, given no hint from the **FADT**, is cluster - mode. - -+### xpti -+> `= ` -+ -+> Default: `false` on AMD hardware -+> Default: `true` everywhere else -+ -+Override default selection of whether to isolate 64-bit PV guest page -+tables. -+ -+** WARNING: Not yet a complete isolation implementation, but better than -+nothing. ** -+ - ### xsave - > `= ` - -diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c -index 3cf18f95b7..a1bda5e12d 100644 ---- a/xen/arch/x86/domain.c -+++ b/xen/arch/x86/domain.c -@@ -1945,12 +1945,15 @@ static void paravirt_ctxt_switch_from(struct vcpu *v) - - static void paravirt_ctxt_switch_to(struct vcpu *v) - { -+ root_pgentry_t *root_pgt = this_cpu(root_pgt); - unsigned long cr4; - - switch_kernel_stack(v); - -- this_cpu(root_pgt)[root_table_offset(PERDOMAIN_VIRT_START)] = -- l4e_from_page(v->domain->arch.perdomain_l3_pg, __PAGE_HYPERVISOR_RW); -+ if ( root_pgt ) -+ root_pgt[root_table_offset(PERDOMAIN_VIRT_START)] = -+ l4e_from_page(v->domain->arch.perdomain_l3_pg, -+ __PAGE_HYPERVISOR_RW); - - cr4 = pv_guest_cr4_to_real_cr4(v); - if ( unlikely(cr4 != read_cr4()) ) -diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c -index c9e4003989..07015e3160 100644 ---- a/xen/arch/x86/mm.c -+++ b/xen/arch/x86/mm.c -@@ -4007,7 +4007,7 @@ long do_mmu_update( - rc = mod_l4_entry(va, l4e_from_intpte(req.val), mfn, - cmd == MMU_PT_UPDATE_PRESERVE_AD, v); - if ( !rc ) -- sync_guest = 1; -+ sync_guest = !!this_cpu(root_pgt); - break; - case PGT_writable_page: - perfc_incr(writable_mmu_updates); -diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c -index eaeec5acf0..f2f47f612a 100644 ---- a/xen/arch/x86/smpboot.c -+++ b/xen/arch/x86/smpboot.c -@@ -320,7 +320,7 @@ void start_secondary(void *unused) - spin_debug_disable(); - - get_cpu_info()->xen_cr3 = 0; -- get_cpu_info()->pv_cr3 = __pa(this_cpu(root_pgt)); -+ get_cpu_info()->pv_cr3 = this_cpu(root_pgt) ? __pa(this_cpu(root_pgt)) : 0; - - load_system_tables(); - -@@ -729,14 +729,20 @@ static int clone_mapping(const void *ptr, root_pgentry_t *rpt) - return 0; - } - -+static __read_mostly int8_t opt_xpti = -1; -+boolean_param("xpti", opt_xpti); - DEFINE_PER_CPU(root_pgentry_t *, root_pgt); - - static int setup_cpu_root_pgt(unsigned int cpu) - { -- root_pgentry_t *rpt = alloc_xen_pagetable(); -+ root_pgentry_t *rpt; - unsigned int off; - int rc; - -+ if ( !opt_xpti ) -+ return 0; -+ -+ rpt = alloc_xen_pagetable(); - if ( !rpt ) - return -ENOMEM; - -@@ -977,10 +983,14 @@ void __init smp_prepare_cpus(unsigned int max_cpus) - - stack_base[0] = stack_start; - -+ if ( opt_xpti < 0 ) -+ opt_xpti = boot_cpu_data.x86_vendor != X86_VENDOR_AMD; -+ - rc = setup_cpu_root_pgt(0); - if ( rc ) - panic("Error %d setting up PV root page table\n", rc); -- get_cpu_info()->pv_cr3 = __pa(per_cpu(root_pgt, 0)); -+ if ( per_cpu(root_pgt, 0) ) -+ get_cpu_info()->pv_cr3 = __pa(per_cpu(root_pgt, 0)); - - set_nr_sockets(); - -@@ -1048,6 +1058,7 @@ void __init smp_prepare_boot_cpu(void) - cpumask_set_cpu(smp_processor_id(), &cpu_present_map); - - get_cpu_info()->xen_cr3 = 0; -+ get_cpu_info()->pv_cr3 = 0; - } - - static void -diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S -index d63e734bb3..2a569952e3 100644 ---- a/xen/arch/x86/x86_64/entry.S -+++ b/xen/arch/x86/x86_64/entry.S -@@ -45,6 +45,7 @@ restore_all_guest: - movabs $DIRECTMAP_VIRT_START, %rcx - mov %rdi, %rax - and %rsi, %rdi -+ jz .Lrag_keep_cr3 - and %r9, %rsi - add %rcx, %rdi - add %rcx, %rsi -@@ -61,6 +62,7 @@ restore_all_guest: - rep movsq - mov %r9, STACK_CPUINFO_FIELD(xen_cr3)(%rdx) - write_cr3 rax, rdi, rsi -+.Lrag_keep_cr3: - - RESTORE_ALL - testw $TRAP_syscall,4(%rsp) --- -2.15.1 - Property changes on: head/emulators/xen-kernel/files/0002-x86-allow-Meltdown-band-aid-to-be-disabled.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa222-1-4.7.patch =================================================================== --- head/emulators/xen-kernel/files/xsa222-1-4.7.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa222-1-4.7.patch (nonexistent) @@ -1,119 +0,0 @@ -From: Andrew Cooper -Subject: xen/memory: Fix return value handing of guest_remove_page() - -Despite the description in mm.h, guest_remove_page() previously returned 0 for -paging errors. - -Switch guest_remove_page() to having regular 0/-error semantics, and propagate -the return values from clear_mmio_p2m_entry() and mem_sharing_unshare_page() -to the callers (although decrease_reservation() is the only caller which -currently cares). - -This is part of XSA-222. - -Reported-by: Julien Grall -Signed-off-by: Andrew Cooper -Reviewed-by: Jan Beulich - ---- a/xen/common/memory.c -+++ b/xen/common/memory.c -@@ -244,6 +244,7 @@ int guest_remove_page(struct domain *d, - p2m_type_t p2mt; - #endif - unsigned long mfn; -+ int rc; - - #ifdef CONFIG_X86 - mfn = mfn_x(get_gfn_query(d, gmfn, &p2mt)); -@@ -261,13 +262,15 @@ int guest_remove_page(struct domain *d, - put_page(page); - } - p2m_mem_paging_drop_page(d, gmfn, p2mt); -- return 1; -+ -+ return 0; - } - if ( p2mt == p2m_mmio_direct ) - { -- clear_mmio_p2m_entry(d, gmfn, _mfn(mfn), 0); -+ rc = clear_mmio_p2m_entry(d, gmfn, _mfn(mfn), PAGE_ORDER_4K); - put_gfn(d, gmfn); -- return 1; -+ -+ return rc; - } - #else - mfn = gmfn_to_mfn(d, gmfn); -@@ -277,21 +280,25 @@ int guest_remove_page(struct domain *d, - put_gfn(d, gmfn); - gdprintk(XENLOG_INFO, "Domain %u page number %lx invalid\n", - d->domain_id, gmfn); -- return 0; -+ -+ return -EINVAL; - } - - #ifdef CONFIG_X86 - if ( p2m_is_shared(p2mt) ) - { -- /* Unshare the page, bail out on error. We unshare because -- * we might be the only one using this shared page, and we -- * need to trigger proper cleanup. Once done, this is -- * like any other page. */ -- if ( mem_sharing_unshare_page(d, gmfn, 0) ) -+ /* -+ * Unshare the page, bail out on error. We unshare because we -+ * might be the only one using this shared page, and we need to -+ * trigger proper cleanup. Once done, this is like any other page. -+ */ -+ rc = mem_sharing_unshare_page(d, gmfn, 0); -+ if ( rc ) - { - put_gfn(d, gmfn); - (void)mem_sharing_notify_enomem(d, gmfn, 0); -- return 0; -+ -+ return rc; - } - /* Maybe the mfn changed */ - mfn = mfn_x(get_gfn_query_unlocked(d, gmfn, &p2mt)); -@@ -304,7 +311,8 @@ int guest_remove_page(struct domain *d, - { - put_gfn(d, gmfn); - gdprintk(XENLOG_INFO, "Bad page free for domain %u\n", d->domain_id); -- return 0; -+ -+ return -ENXIO; - } - - if ( test_and_clear_bit(_PGT_pinned, &page->u.inuse.type_info) ) -@@ -327,7 +335,7 @@ int guest_remove_page(struct domain *d, - put_page(page); - put_gfn(d, gmfn); - -- return 1; -+ return 0; - } - - static void decrease_reservation(struct memop_args *a) -@@ -371,7 +379,7 @@ static void decrease_reservation(struct - continue; - - for ( j = 0; j < (1 << a->extent_order); j++ ) -- if ( !guest_remove_page(a->domain, gmfn + j) ) -+ if ( guest_remove_page(a->domain, gmfn + j) ) - goto out; - } - ---- a/xen/include/xen/mm.h -+++ b/xen/include/xen/mm.h -@@ -509,8 +509,7 @@ int xenmem_add_to_physmap_one(struct dom - union xen_add_to_physmap_batch_extra extra, - unsigned long idx, xen_pfn_t gpfn); - --/* Returns 1 on success, 0 on error, negative if the ring -- * for event propagation is full in the presence of paging */ -+/* Returns 0 on success, or negative on error. */ - int guest_remove_page(struct domain *d, unsigned long gmfn); - - #define RAM_TYPE_CONVENTIONAL 0x00000001 Property changes on: head/emulators/xen-kernel/files/xsa222-1-4.7.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/xsa222-2-4.7.patch =================================================================== --- head/emulators/xen-kernel/files/xsa222-2-4.7.patch (revision 475253) +++ head/emulators/xen-kernel/files/xsa222-2-4.7.patch (nonexistent) @@ -1,412 +0,0 @@ -From: Jan Beulich -Subject: guest_physmap_remove_page() needs its return value checked - -Callers, namely such subsequently freeing the page, must not blindly -assume success - the function may namely fail when needing to shatter a -super page, but there not being memory available for the then needed -intermediate page table. - -As it happens, guest_remove_page() callers now also all check the -return value. - -Furthermore a missed put_gfn() on an error path in gnttab_transfer() is -also being taken care of. - -This is part of XSA-222. - -Reported-by: Julien Grall -Signed-off-by: Jan Beulich -Signed-off-by: Julien Grall -Reviewed-by: Andrew Cooper - ---- a/xen/arch/arm/mm.c -+++ b/xen/arch/arm/mm.c -@@ -1299,13 +1299,14 @@ int replace_grant_host_mapping(unsigned - { - unsigned long gfn = (unsigned long)(addr >> PAGE_SHIFT); - struct domain *d = current->domain; -+ int rc; - - if ( new_addr != 0 || (flags & GNTMAP_contains_pte) ) - return GNTST_general_error; - -- guest_physmap_remove_page(d, gfn, mfn, 0); -+ rc = guest_physmap_remove_page(d, gfn, mfn, 0); - -- return GNTST_okay; -+ return rc ? GNTST_general_error : GNTST_okay; - } - - int is_iomem_page(unsigned long mfn) ---- a/xen/arch/arm/p2m.c -+++ b/xen/arch/arm/p2m.c -@@ -1313,15 +1313,14 @@ int guest_physmap_add_entry(struct domai - d->arch.p2m.default_access); - } - --void guest_physmap_remove_page(struct domain *d, -- unsigned long gpfn, -- unsigned long mfn, unsigned int page_order) -+int guest_physmap_remove_page(struct domain *d, unsigned long gfn, -+ unsigned long mfn, unsigned int page_order) - { -- apply_p2m_changes(d, REMOVE, -- pfn_to_paddr(gpfn), -- pfn_to_paddr(gpfn + (1<arch.p2m.default_access); -+ return apply_p2m_changes(d, REMOVE, -+ pfn_to_paddr(gfn), -+ pfn_to_paddr(gfn + (1 << page_order)), -+ pfn_to_paddr(mfn), MATTR_MEM, 0, p2m_invalid, -+ d->arch.p2m.default_access); - } - - int p2m_alloc_table(struct domain *d) ---- a/xen/arch/x86/domain.c -+++ b/xen/arch/x86/domain.c -@@ -802,7 +802,15 @@ int arch_domain_soft_reset(struct domain - ret = -ENOMEM; - goto exit_put_gfn; - } -- guest_physmap_remove_page(d, gfn, mfn, PAGE_ORDER_4K); -+ -+ ret = guest_physmap_remove_page(d, gfn, mfn, PAGE_ORDER_4K); -+ if ( ret ) -+ { -+ printk(XENLOG_G_ERR "Failed to remove Dom%d's shared_info frame %lx\n", -+ d->domain_id, gfn); -+ free_domheap_page(new_page); -+ goto exit_put_gfn; -+ } - - ret = guest_physmap_add_page(d, gfn, page_to_mfn(new_page), PAGE_ORDER_4K); - if ( ret ) ---- a/xen/arch/x86/domain_build.c -+++ b/xen/arch/x86/domain_build.c -@@ -427,7 +427,9 @@ static __init void pvh_add_mem_mapping(s - if ( !iomem_access_permitted(d, mfn + i, mfn + i) ) - { - omfn = get_gfn_query_unlocked(d, gfn + i, &t); -- guest_physmap_remove_page(d, gfn + i, mfn_x(omfn), PAGE_ORDER_4K); -+ if ( guest_physmap_remove_page(d, gfn + i, mfn_x(omfn), -+ PAGE_ORDER_4K) ) -+ /* nothing, best effort only */; - continue; - } - ---- a/xen/arch/x86/hvm/ioreq.c -+++ b/xen/arch/x86/hvm/ioreq.c -@@ -267,8 +267,9 @@ bool_t is_ioreq_server_page(struct domai - static void hvm_remove_ioreq_gmfn( - struct domain *d, struct hvm_ioreq_page *iorp) - { -- guest_physmap_remove_page(d, iorp->gmfn, -- page_to_mfn(iorp->page), 0); -+ if ( guest_physmap_remove_page(d, iorp->gmfn, -+ page_to_mfn(iorp->page), 0) ) -+ domain_crash(d); - clear_page(iorp->va); - } - ---- a/xen/arch/x86/mm.c -+++ b/xen/arch/x86/mm.c -@@ -4271,7 +4271,11 @@ static int replace_grant_p2m_mapping( - type, mfn_x(old_mfn), frame); - return GNTST_general_error; - } -- guest_physmap_remove_page(d, gfn, frame, PAGE_ORDER_4K); -+ if ( guest_physmap_remove_page(d, gfn, frame, PAGE_ORDER_4K) ) -+ { -+ put_gfn(d, gfn); -+ return GNTST_general_error; -+ } - - put_gfn(d, gfn); - return GNTST_okay; -@@ -4793,7 +4797,7 @@ int xenmem_add_to_physmap_one( - struct page_info *page = NULL; - unsigned long gfn = 0; /* gcc ... */ - unsigned long prev_mfn, mfn = 0, old_gpfn; -- int rc; -+ int rc = 0; - p2m_type_t p2mt; - - switch ( space ) -@@ -4867,25 +4871,30 @@ int xenmem_add_to_physmap_one( - { - if ( is_xen_heap_mfn(prev_mfn) ) - /* Xen heap frames are simply unhooked from this phys slot. */ -- guest_physmap_remove_page(d, gpfn, prev_mfn, PAGE_ORDER_4K); -+ rc = guest_physmap_remove_page(d, gpfn, prev_mfn, PAGE_ORDER_4K); - else - /* Normal domain memory is freed, to avoid leaking memory. */ -- guest_remove_page(d, gpfn); -+ rc = guest_remove_page(d, gpfn); - } - /* In the XENMAPSPACE_gmfn case we still hold a ref on the old page. */ - put_gfn(d, gpfn); - -+ if ( rc ) -+ goto put_both; -+ - /* Unmap from old location, if any. */ - old_gpfn = get_gpfn_from_mfn(mfn); - ASSERT( old_gpfn != SHARED_M2P_ENTRY ); - if ( space == XENMAPSPACE_gmfn || space == XENMAPSPACE_gmfn_range ) - ASSERT( old_gpfn == gfn ); - if ( old_gpfn != INVALID_M2P_ENTRY ) -- guest_physmap_remove_page(d, old_gpfn, mfn, PAGE_ORDER_4K); -+ rc = guest_physmap_remove_page(d, old_gpfn, mfn, PAGE_ORDER_4K); - - /* Map at new location. */ -- rc = guest_physmap_add_page(d, gpfn, mfn, PAGE_ORDER_4K); -+ if ( !rc ) -+ rc = guest_physmap_add_page(d, gpfn, mfn, PAGE_ORDER_4K); - -+ put_both: - /* In the XENMAPSPACE_gmfn, we took a ref of the gfn at the top */ - if ( space == XENMAPSPACE_gmfn || space == XENMAPSPACE_gmfn_range ) - put_gfn(d, gfn); ---- a/xen/arch/x86/mm/p2m.c -+++ b/xen/arch/x86/mm/p2m.c -@@ -2837,10 +2837,12 @@ int p2m_add_foreign(struct domain *tdom, - { - if ( is_xen_heap_mfn(prev_mfn) ) - /* Xen heap frames are simply unhooked from this phys slot */ -- guest_physmap_remove_page(tdom, gpfn, prev_mfn, 0); -+ rc = guest_physmap_remove_page(tdom, gpfn, prev_mfn, 0); - else - /* Normal domain memory is freed, to avoid leaking memory. */ -- guest_remove_page(tdom, gpfn); -+ rc = guest_remove_page(tdom, gpfn); -+ if ( rc ) -+ goto put_both; - } - /* - * Create the new mapping. Can't use guest_physmap_add_page() because it -@@ -2853,6 +2855,7 @@ int p2m_add_foreign(struct domain *tdom, - "gpfn:%lx mfn:%lx fgfn:%lx td:%d fd:%d\n", - gpfn, mfn, fgfn, tdom->domain_id, fdom->domain_id); - -+ put_both: - put_page(page); - - /* ---- a/xen/common/grant_table.c -+++ b/xen/common/grant_table.c -@@ -1768,6 +1768,7 @@ gnttab_transfer( - for ( i = 0; i < count; i++ ) - { - bool_t okay; -+ int rc; - - if (i && hypercall_preempt_check()) - return i; -@@ -1818,27 +1819,33 @@ gnttab_transfer( - goto copyback; - } - -- guest_physmap_remove_page(d, gop.mfn, mfn, 0); -+ rc = guest_physmap_remove_page(d, gop.mfn, mfn, 0); - gnttab_flush_tlb(d); -+ if ( rc ) -+ { -+ gdprintk(XENLOG_INFO, -+ "gnttab_transfer: can't remove GFN %"PRI_xen_pfn" (MFN %lx)\n", -+ gop.mfn, mfn); -+ gop.status = GNTST_general_error; -+ goto put_gfn_and_copyback; -+ } - - /* Find the target domain. */ - if ( unlikely((e = rcu_lock_domain_by_id(gop.domid)) == NULL) ) - { -- put_gfn(d, gop.mfn); - gdprintk(XENLOG_INFO, "gnttab_transfer: can't find domain %d\n", - gop.domid); -- page->count_info &= ~(PGC_count_mask|PGC_allocated); -- free_domheap_page(page); - gop.status = GNTST_bad_domain; -- goto copyback; -+ goto put_gfn_and_copyback; - } - - if ( xsm_grant_transfer(XSM_HOOK, d, e) ) - { -- put_gfn(d, gop.mfn); - gop.status = GNTST_permission_denied; - unlock_and_copyback: - rcu_unlock_domain(e); -+ put_gfn_and_copyback: -+ put_gfn(d, gop.mfn); - page->count_info &= ~(PGC_count_mask|PGC_allocated); - free_domheap_page(page); - goto copyback; -@@ -1887,12 +1894,8 @@ gnttab_transfer( - "Transferee (d%d) has no headroom (tot %u, max %u)\n", - e->domain_id, e->tot_pages, e->max_pages); - -- rcu_unlock_domain(e); -- put_gfn(d, gop.mfn); -- page->count_info &= ~(PGC_count_mask|PGC_allocated); -- free_domheap_page(page); - gop.status = GNTST_general_error; -- goto copyback; -+ goto unlock_and_copyback; - } - - /* Okay, add the page to 'e'. */ -@@ -1921,13 +1924,8 @@ gnttab_transfer( - - if ( drop_dom_ref ) - put_domain(e); -- rcu_unlock_domain(e); -- -- put_gfn(d, gop.mfn); -- page->count_info &= ~(PGC_count_mask|PGC_allocated); -- free_domheap_page(page); - gop.status = GNTST_general_error; -- goto copyback; -+ goto unlock_and_copyback; - } - - page_list_add_tail(page, &e->page_list); ---- a/xen/common/memory.c -+++ b/xen/common/memory.c -@@ -250,8 +250,12 @@ int guest_remove_page(struct domain *d, - mfn = mfn_x(get_gfn_query(d, gmfn, &p2mt)); - if ( unlikely(p2m_is_paging(p2mt)) ) - { -- guest_physmap_remove_page(d, gmfn, mfn, 0); -+ rc = guest_physmap_remove_page(d, gmfn, mfn, 0); - put_gfn(d, gmfn); -+ -+ if ( rc ) -+ return rc; -+ - /* If the page hasn't yet been paged out, there is an - * actual page that needs to be released. */ - if ( p2mt == p2m_ram_paging_out ) -@@ -315,7 +319,9 @@ int guest_remove_page(struct domain *d, - return -ENXIO; - } - -- if ( test_and_clear_bit(_PGT_pinned, &page->u.inuse.type_info) ) -+ rc = guest_physmap_remove_page(d, gmfn, mfn, 0); -+ -+ if ( !rc && test_and_clear_bit(_PGT_pinned, &page->u.inuse.type_info) ) - put_page_and_type(page); - - /* -@@ -326,16 +332,14 @@ int guest_remove_page(struct domain *d, - * For this purpose (and to match populate_physmap() behavior), the page - * is kept allocated. - */ -- if ( !is_domain_direct_mapped(d) && -+ if ( !rc && !is_domain_direct_mapped(d) && - test_and_clear_bit(_PGC_allocated, &page->count_info) ) - put_page(page); - -- guest_physmap_remove_page(d, gmfn, mfn, 0); -- - put_page(page); - put_gfn(d, gmfn); - -- return 0; -+ return rc; - } - - static void decrease_reservation(struct memop_args *a) -@@ -570,7 +574,8 @@ static long memory_exchange(XEN_GUEST_HA - gfn = mfn_to_gmfn(d, mfn); - /* Pages were unshared above */ - BUG_ON(SHARED_M2P(gfn)); -- guest_physmap_remove_page(d, gfn, mfn, 0); -+ if ( guest_physmap_remove_page(d, gfn, mfn, 0) ) -+ domain_crash(d); - put_page(page); - } - -@@ -1120,7 +1125,7 @@ long do_memory_op(unsigned long cmd, XEN - page = get_page_from_gfn(d, xrfp.gpfn, NULL, P2M_ALLOC); - if ( page ) - { -- guest_physmap_remove_page(d, xrfp.gpfn, page_to_mfn(page), 0); -+ rc = guest_physmap_remove_page(d, xrfp.gpfn, page_to_mfn(page), 0); - put_page(page); - } - else ---- a/xen/drivers/passthrough/arm/smmu.c -+++ b/xen/drivers/passthrough/arm/smmu.c -@@ -2783,9 +2783,7 @@ static int arm_smmu_unmap_page(struct do - if ( !is_domain_direct_mapped(d) ) - return -EINVAL; - -- guest_physmap_remove_page(d, gfn, gfn, 0); -- -- return 0; -+ return guest_physmap_remove_page(d, gfn, gfn, 0); - } - - static const struct iommu_ops arm_smmu_iommu_ops = { ---- a/xen/include/asm-arm/p2m.h -+++ b/xen/include/asm-arm/p2m.h -@@ -177,10 +177,6 @@ static inline int guest_physmap_add_page - return guest_physmap_add_entry(d, gfn, mfn, page_order, p2m_ram_rw); - } - --void guest_physmap_remove_page(struct domain *d, -- unsigned long gpfn, -- unsigned long mfn, unsigned int page_order); -- - unsigned long gmfn_to_mfn(struct domain *d, unsigned long gpfn); - - /* ---- a/xen/include/asm-x86/p2m.h -+++ b/xen/include/asm-x86/p2m.h -@@ -558,11 +558,6 @@ static inline int guest_physmap_add_page - return guest_physmap_add_entry(d, gfn, mfn, page_order, p2m_ram_rw); - } - --/* Remove a page from a domain's p2m table */ --int guest_physmap_remove_page(struct domain *d, -- unsigned long gfn, -- unsigned long mfn, unsigned int page_order); -- - /* Set a p2m range as populate-on-demand */ - int guest_physmap_mark_populate_on_demand(struct domain *d, unsigned long gfn, - unsigned int order); ---- a/xen/include/xen/p2m-common.h -+++ b/xen/include/xen/p2m-common.h -@@ -1,6 +1,7 @@ - #ifndef _XEN_P2M_COMMON_H - #define _XEN_P2M_COMMON_H - -+#include - #include - - /* -@@ -33,6 +34,11 @@ typedef enum { - /* NOTE: Assumed to be only 4 bits right now on x86. */ - } p2m_access_t; - -+/* Remove a page from a domain's p2m table */ -+int __must_check -+guest_physmap_remove_page(struct domain *d, unsigned long gfn, -+ unsigned long mfn, unsigned int page_order); -+ - /* Map MMIO regions in the p2m: start_gfn and nr describe the range in - * * the guest physical address space to map, starting from the machine - * * frame number mfn. */ ---- a/xen/include/xen/mm.h -+++ b/xen/include/xen/mm.h -@@ -510,7 +510,7 @@ int xenmem_add_to_physmap_one(struct dom - unsigned long idx, xen_pfn_t gpfn); - - /* Returns 0 on success, or negative on error. */ --int guest_remove_page(struct domain *d, unsigned long gmfn); -+int __must_check guest_remove_page(struct domain *d, unsigned long gmfn); - - #define RAM_TYPE_CONVENTIONAL 0x00000001 - #define RAM_TYPE_RESERVED 0x00000002 Property changes on: head/emulators/xen-kernel/files/xsa222-2-4.7.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel/files/0001-x86-limit-linear-page-table-use-to-a-single-level.patch =================================================================== --- head/emulators/xen-kernel/files/0001-x86-limit-linear-page-table-use-to-a-single-level.patch (revision 475253) +++ head/emulators/xen-kernel/files/0001-x86-limit-linear-page-table-use-to-a-single-level.patch (nonexistent) @@ -1,494 +0,0 @@ -From ea7513a3e3f28cfec59dda6e128b6b4968685762 Mon Sep 17 00:00:00 2001 -From: Jan Beulich -Date: Thu, 28 Sep 2017 15:17:27 +0100 -Subject: [PATCH 1/2] x86: limit linear page table use to a single level - -That's the only way that they're meant to be used. Without such a -restriction arbitrarily long chains of same-level page tables can be -built, tearing down of which may then cause arbitrarily deep recursion, -causing a stack overflow. To facilitate this restriction, a counter is -being introduced to track both the number of same-level entries in a -page table as well as the number of uses of a page table in another -same-level one (counting into positive and negative direction -respectively, utilizing the fact that both counts can't be non-zero at -the same time). - -Note that the added accounting introduces a restriction on the number -of times a page can be used in other same-level page tables - more than -32k of such uses are no longer possible. - -Note also that some put_page_and_type[_preemptible]() calls are -replaced with open-coded equivalents. This seemed preferrable to -adding "parent_table" to the matrix of functions. - -Note further that cross-domain same-level page table references are no -longer permitted (they probably never should have been). - -This is XSA-240. - -Reported-by: Jann Horn -Signed-off-by: Jan Beulich -Signed-off-by: George Dunlap ---- - xen/arch/x86/domain.c | 1 + - xen/arch/x86/mm.c | 171 ++++++++++++++++++++++++++++++++++++++----- - xen/include/asm-x86/domain.h | 2 + - xen/include/asm-x86/mm.h | 25 +++++-- - 4 files changed, 175 insertions(+), 24 deletions(-) - -diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c -index 452748dd5b..44ed2ccd0a 100644 ---- a/xen/arch/x86/domain.c -+++ b/xen/arch/x86/domain.c -@@ -1237,6 +1237,7 @@ int arch_set_info_guest( - case -EINTR: - rc = -ERESTART; - case -ERESTART: -+ v->arch.old_guest_ptpg = NULL; - v->arch.old_guest_table = - pagetable_get_page(v->arch.guest_table); - v->arch.guest_table = pagetable_null(); -diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c -index e97ecccd93..e81a461b91 100644 ---- a/xen/arch/x86/mm.c -+++ b/xen/arch/x86/mm.c -@@ -732,6 +732,61 @@ static void put_data_page( - put_page(page); - } - -+static bool_t inc_linear_entries(struct page_info *pg) -+{ -+ typeof(pg->linear_pt_count) nc = read_atomic(&pg->linear_pt_count), oc; -+ -+ do { -+ /* -+ * The check below checks for the "linear use" count being non-zero -+ * as well as overflow. Signed integer overflow is undefined behavior -+ * according to the C spec. However, as long as linear_pt_count is -+ * smaller in size than 'int', the arithmetic operation of the -+ * increment below won't overflow; rather the result will be truncated -+ * when stored. Ensure that this is always true. -+ */ -+ BUILD_BUG_ON(sizeof(nc) >= sizeof(int)); -+ oc = nc++; -+ if ( nc <= 0 ) -+ return 0; -+ nc = cmpxchg(&pg->linear_pt_count, oc, nc); -+ } while ( oc != nc ); -+ -+ return 1; -+} -+ -+static void dec_linear_entries(struct page_info *pg) -+{ -+ typeof(pg->linear_pt_count) oc; -+ -+ oc = arch_fetch_and_add(&pg->linear_pt_count, -1); -+ ASSERT(oc > 0); -+} -+ -+static bool_t inc_linear_uses(struct page_info *pg) -+{ -+ typeof(pg->linear_pt_count) nc = read_atomic(&pg->linear_pt_count), oc; -+ -+ do { -+ /* See the respective comment in inc_linear_entries(). */ -+ BUILD_BUG_ON(sizeof(nc) >= sizeof(int)); -+ oc = nc--; -+ if ( nc >= 0 ) -+ return 0; -+ nc = cmpxchg(&pg->linear_pt_count, oc, nc); -+ } while ( oc != nc ); -+ -+ return 1; -+} -+ -+static void dec_linear_uses(struct page_info *pg) -+{ -+ typeof(pg->linear_pt_count) oc; -+ -+ oc = arch_fetch_and_add(&pg->linear_pt_count, 1); -+ ASSERT(oc < 0); -+} -+ - /* - * We allow root tables to map each other (a.k.a. linear page tables). It - * needs some special care with reference counts and access permissions: -@@ -761,15 +816,35 @@ get_##level##_linear_pagetable( \ - \ - if ( (pfn = level##e_get_pfn(pde)) != pde_pfn ) \ - { \ -+ struct page_info *ptpg = mfn_to_page(pde_pfn); \ -+ \ -+ /* Make sure the page table belongs to the correct domain. */ \ -+ if ( unlikely(page_get_owner(ptpg) != d) ) \ -+ return 0; \ -+ \ - /* Make sure the mapped frame belongs to the correct domain. */ \ - if ( unlikely(!get_page_from_pagenr(pfn, d)) ) \ - return 0; \ - \ - /* \ -- * Ensure that the mapped frame is an already-validated page table. \ -+ * Ensure that the mapped frame is an already-validated page table \ -+ * and is not itself having linear entries, as well as that the \ -+ * containing page table is not iself in use as a linear page table \ -+ * elsewhere. \ - * If so, atomically increment the count (checking for overflow). \ - */ \ - page = mfn_to_page(pfn); \ -+ if ( !inc_linear_entries(ptpg) ) \ -+ { \ -+ put_page(page); \ -+ return 0; \ -+ } \ -+ if ( !inc_linear_uses(page) ) \ -+ { \ -+ dec_linear_entries(ptpg); \ -+ put_page(page); \ -+ return 0; \ -+ } \ - y = page->u.inuse.type_info; \ - do { \ - x = y; \ -@@ -777,6 +852,8 @@ get_##level##_linear_pagetable( \ - unlikely((x & (PGT_type_mask|PGT_validated)) != \ - (PGT_##level##_page_table|PGT_validated)) ) \ - { \ -+ dec_linear_uses(page); \ -+ dec_linear_entries(ptpg); \ - put_page(page); \ - return 0; \ - } \ -@@ -1201,6 +1278,9 @@ get_page_from_l4e( - l3e_remove_flags((pl3e), _PAGE_USER|_PAGE_RW|_PAGE_ACCESSED); \ - } while ( 0 ) - -+static int _put_page_type(struct page_info *page, bool_t preemptible, -+ struct page_info *ptpg); -+ - void put_page_from_l1e(l1_pgentry_t l1e, struct domain *l1e_owner) - { - unsigned long pfn = l1e_get_pfn(l1e); -@@ -1270,17 +1350,22 @@ static int put_page_from_l2e(l2_pgentry_t l2e, unsigned long pfn) - if ( l2e_get_flags(l2e) & _PAGE_PSE ) - put_superpage(l2e_get_pfn(l2e)); - else -- put_page_and_type(l2e_get_page(l2e)); -+ { -+ struct page_info *pg = l2e_get_page(l2e); -+ int rc = _put_page_type(pg, 0, mfn_to_page(pfn)); -+ -+ ASSERT(!rc); -+ put_page(pg); -+ } - - return 0; - } - --static int __put_page_type(struct page_info *, int preemptible); -- - static int put_page_from_l3e(l3_pgentry_t l3e, unsigned long pfn, - int partial, bool_t defer) - { - struct page_info *pg; -+ int rc; - - if ( !(l3e_get_flags(l3e) & _PAGE_PRESENT) || (l3e_get_pfn(l3e) == pfn) ) - return 1; -@@ -1303,21 +1388,28 @@ static int put_page_from_l3e(l3_pgentry_t l3e, unsigned long pfn, - if ( unlikely(partial > 0) ) - { - ASSERT(!defer); -- return __put_page_type(pg, 1); -+ return _put_page_type(pg, 1, mfn_to_page(pfn)); - } - - if ( defer ) - { -+ current->arch.old_guest_ptpg = mfn_to_page(pfn); - current->arch.old_guest_table = pg; - return 0; - } - -- return put_page_and_type_preemptible(pg); -+ rc = _put_page_type(pg, 1, mfn_to_page(pfn)); -+ if ( likely(!rc) ) -+ put_page(pg); -+ -+ return rc; - } - - static int put_page_from_l4e(l4_pgentry_t l4e, unsigned long pfn, - int partial, bool_t defer) - { -+ int rc = 1; -+ - if ( (l4e_get_flags(l4e) & _PAGE_PRESENT) && - (l4e_get_pfn(l4e) != pfn) ) - { -@@ -1326,18 +1418,22 @@ static int put_page_from_l4e(l4_pgentry_t l4e, unsigned long pfn, - if ( unlikely(partial > 0) ) - { - ASSERT(!defer); -- return __put_page_type(pg, 1); -+ return _put_page_type(pg, 1, mfn_to_page(pfn)); - } - - if ( defer ) - { -+ current->arch.old_guest_ptpg = mfn_to_page(pfn); - current->arch.old_guest_table = pg; - return 0; - } - -- return put_page_and_type_preemptible(pg); -+ rc = _put_page_type(pg, 1, mfn_to_page(pfn)); -+ if ( likely(!rc) ) -+ put_page(pg); - } -- return 1; -+ -+ return rc; - } - - static int alloc_l1_table(struct page_info *page) -@@ -1535,6 +1631,7 @@ static int alloc_l3_table(struct page_info *page) - { - page->nr_validated_ptes = i; - page->partial_pte = 0; -+ current->arch.old_guest_ptpg = NULL; - current->arch.old_guest_table = page; - } - while ( i-- > 0 ) -@@ -1627,6 +1724,7 @@ static int alloc_l4_table(struct page_info *page) - { - if ( current->arch.old_guest_table ) - page->nr_validated_ptes++; -+ current->arch.old_guest_ptpg = NULL; - current->arch.old_guest_table = page; - } - } -@@ -2369,14 +2467,20 @@ int free_page_type(struct page_info *pag - } - - --static int __put_final_page_type( -- struct page_info *page, unsigned long type, int preemptible) -+static int _put_final_page_type(struct page_info *page, unsigned long type, -+ bool_t preemptible, struct page_info *ptpg) - { - int rc = free_page_type(page, type, preemptible); - - /* No need for atomic update of type_info here: noone else updates it. */ - if ( rc == 0 ) - { -+ if ( ptpg && PGT_type_equal(type, ptpg->u.inuse.type_info) ) -+ { -+ dec_linear_uses(page); -+ dec_linear_entries(ptpg); -+ } -+ ASSERT(!page->linear_pt_count || page_get_owner(page)->is_dying); - /* - * Record TLB information for flush later. We do not stamp page tables - * when running in shadow mode: -@@ -2412,8 +2516,8 @@ static int __put_final_page_type( - } - - --static int __put_page_type(struct page_info *page, -- int preemptible) -+static int _put_page_type(struct page_info *page, bool_t preemptible, -+ struct page_info *ptpg) - { - unsigned long nx, x, y = page->u.inuse.type_info; - int rc = 0; -@@ -2440,12 +2544,28 @@ static int __put_page_type(struct page_info *page, - x, nx)) != x) ) - continue; - /* We cleared the 'valid bit' so we do the clean up. */ -- rc = __put_final_page_type(page, x, preemptible); -+ rc = _put_final_page_type(page, x, preemptible, ptpg); -+ ptpg = NULL; - if ( x & PGT_partial ) - put_page(page); - break; - } - -+ if ( ptpg && PGT_type_equal(x, ptpg->u.inuse.type_info) ) -+ { -+ /* -+ * page_set_tlbflush_timestamp() accesses the same union -+ * linear_pt_count lives in. Unvalidated page table pages, -+ * however, should occur during domain destruction only -+ * anyway. Updating of linear_pt_count luckily is not -+ * necessary anymore for a dying domain. -+ */ -+ ASSERT(page_get_owner(page)->is_dying); -+ ASSERT(page->linear_pt_count < 0); -+ ASSERT(ptpg->linear_pt_count > 0); -+ ptpg = NULL; -+ } -+ - /* - * Record TLB information for flush later. We do not stamp page - * tables when running in shadow mode: -@@ -2465,6 +2585,13 @@ static int __put_page_type(struct page_info *page, - return -EINTR; - } - -+ if ( ptpg && PGT_type_equal(x, ptpg->u.inuse.type_info) ) -+ { -+ ASSERT(!rc); -+ dec_linear_uses(page); -+ dec_linear_entries(ptpg); -+ } -+ - return rc; - } - -@@ -2599,6 +2726,7 @@ static int __get_page_type(struct page_info *page, unsigned long type, - page->nr_validated_ptes = 0; - page->partial_pte = 0; - } -+ page->linear_pt_count = 0; - rc = alloc_page_type(page, type, preemptible); - } - -@@ -2610,7 +2738,7 @@ static int __get_page_type(struct page_info *page, unsigned long type, - - void put_page_type(struct page_info *page) - { -- int rc = __put_page_type(page, 0); -+ int rc = _put_page_type(page, 0, NULL); - ASSERT(rc == 0); - (void)rc; - } -@@ -2626,7 +2754,7 @@ int get_page_type(struct page_info *page, unsigned long type) - - int put_page_type_preemptible(struct page_info *page) - { -- return __put_page_type(page, 1); -+ return _put_page_type(page, 1, NULL); - } - - int get_page_type_preemptible(struct page_info *page, unsigned long type) -@@ -2832,11 +2960,14 @@ int put_old_guest_table(struct vcpu *v) - if ( !v->arch.old_guest_table ) - return 0; - -- switch ( rc = put_page_and_type_preemptible(v->arch.old_guest_table) ) -+ switch ( rc = _put_page_type(v->arch.old_guest_table, 1, -+ v->arch.old_guest_ptpg) ) - { - case -EINTR: - case -ERESTART: - return -ERESTART; -+ case 0: -+ put_page(v->arch.old_guest_table); - } - - v->arch.old_guest_table = NULL; -@@ -2993,6 +3124,7 @@ int new_guest_cr3(unsigned long mfn) - rc = -ERESTART; - /* fallthrough */ - case -ERESTART: -+ curr->arch.old_guest_ptpg = NULL; - curr->arch.old_guest_table = page; - break; - default: -@@ -3260,7 +3392,10 @@ long do_mmuext_op( - if ( type == PGT_l1_page_table ) - put_page_and_type(page); - else -+ { -+ curr->arch.old_guest_ptpg = NULL; - curr->arch.old_guest_table = page; -+ } - } - } - -@@ -3293,6 +3428,7 @@ long do_mmuext_op( - { - case -EINTR: - case -ERESTART: -+ curr->arch.old_guest_ptpg = NULL; - curr->arch.old_guest_table = page; - rc = 0; - break; -@@ -3371,6 +3507,7 @@ long do_mmuext_op( - rc = -ERESTART; - /* fallthrough */ - case -ERESTART: -+ curr->arch.old_guest_ptpg = NULL; - curr->arch.old_guest_table = page; - break; - default: -diff --git a/xen/include/asm-x86/domain.h b/xen/include/asm-x86/domain.h -index 165e533ab3..5ef761be8b 100644 ---- a/xen/include/asm-x86/domain.h -+++ b/xen/include/asm-x86/domain.h -@@ -529,6 +529,8 @@ struct arch_vcpu - pagetable_t guest_table_user; /* (MFN) x86/64 user-space pagetable */ - pagetable_t guest_table; /* (MFN) guest notion of cr3 */ - struct page_info *old_guest_table; /* partially destructed pagetable */ -+ struct page_info *old_guest_ptpg; /* containing page table of the */ -+ /* former, if any */ - /* guest_table holds a ref to the page, and also a type-count unless - * shadow refcounts are in use */ - pagetable_t shadow_table[4]; /* (MFN) shadow(s) of guest */ -diff --git a/xen/include/asm-x86/mm.h b/xen/include/asm-x86/mm.h -index a30e76db1e..905c7971f2 100644 ---- a/xen/include/asm-x86/mm.h -+++ b/xen/include/asm-x86/mm.h -@@ -125,11 +125,11 @@ struct page_info - u32 tlbflush_timestamp; - - /* -- * When PGT_partial is true then this field is valid and indicates -- * that PTEs in the range [0, @nr_validated_ptes) have been validated. -- * An extra page reference must be acquired (or not dropped) whenever -- * PGT_partial gets set, and it must be dropped when the flag gets -- * cleared. This is so that a get() leaving a page in partially -+ * When PGT_partial is true then the first two fields are valid and -+ * indicate that PTEs in the range [0, @nr_validated_ptes) have been -+ * validated. An extra page reference must be acquired (or not dropped) -+ * whenever PGT_partial gets set, and it must be dropped when the flag -+ * gets cleared. This is so that a get() leaving a page in partially - * validated state (where the caller would drop the reference acquired - * due to the getting of the type [apparently] failing [-ERESTART]) - * would not accidentally result in a page left with zero general -@@ -153,10 +153,18 @@ struct page_info - * put_page_from_lNe() (due to the apparent failure), and hence it - * must be dropped when the put operation is resumed (and completes), - * but it must not be acquired if picking up the page for validation. -+ * -+ * The 3rd field, @linear_pt_count, indicates -+ * - by a positive value, how many same-level page table entries a page -+ * table has, -+ * - by a negative value, in how many same-level page tables a page is -+ * in use. - */ - struct { -- u16 nr_validated_ptes; -- s8 partial_pte; -+ u16 nr_validated_ptes:PAGETABLE_ORDER + 1; -+ u16 :16 - PAGETABLE_ORDER - 1 - 2; -+ s16 partial_pte:2; -+ s16 linear_pt_count; - }; - - /* -@@ -207,6 +215,9 @@ struct page_info - #define PGT_count_width PG_shift(9) - #define PGT_count_mask ((1UL< Property changes on: head/emulators/xen/Makefile ___________________________________________________________________ Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/Makefile =================================================================== --- head/emulators/xen-kernel47/Makefile (nonexistent) +++ head/emulators/xen-kernel47/Makefile (revision 475254) @@ -0,0 +1,124 @@ +# $FreeBSD$ + +PORTNAME= xen +PORTVERSION= 4.7.2 +PORTREVISION= 9 +CATEGORIES= emulators +MASTER_SITES= http://downloads.xenproject.org/release/xen/${PORTVERSION}/ +PKGNAMESUFFIX= -kernel + +MAINTAINER= royger@FreeBSD.org +COMMENT= Hypervisor using a microkernel design + +LICENSE= GPLv2 + +ONLY_FOR_ARCHS= amd64 + +USES= cpe gmake python:2.7,build + +# We need to use ld from ports because the version in base doesn't +# support the '--build-id' switch that's needed for live hypervisor +# hot-patching. Once the ld version in base supports this option the +# dependency can be removed. +# +# GNU objcopy is used instead of elftc objcopy because of bug #533: +# https://sourceforge.net/p/elftoolchain/tickets/533/ +# Once this is solved we should be able to switch to elfcopy. +# +# And finally we also need to use nm from binutils because the one +# from base cannot deal with i386pep binary files which is the format +# of the Xen EFI image (note that FreeBSD cannot yet boot as Dom0 from EFI, +# but the image is built anyway). This is reported to elftc as bug #534: +# https://sourceforge.net/p/elftoolchain/tickets/534/ +MAKE_ARGS= clang=y PYTHON=${PYTHON_CMD} LD="${LD}" OBJCOPY="${OBJCOPY}" \ + NM="${NM}" +USE_BINUTILS= yes +NO_MTREE= yes +STRIP= # +PLIST_FILES= /boot/xen \ + /boot/xen.4th +EXTRA_PATCHES= ${FILESDIR}/0001-xen-logdirty-prevent-preemption-if-finished.patch:-p1 \ + ${FILESDIR}/0002-xen-rework-paging_log_dirty_op-to-work-with-hvm-gues.patch:-p1 \ + ${FILESDIR}/kconf_arch.patch:-p1 \ + ${FILESDIR}/0001-x86-drop-unneeded-__packed-attributes.patch:-p1 \ + ${FILESDIR}/0002-build-clang-fix-XSM-dummy-policy-when-using-clang-4..patch:-p1 \ + ${FILESDIR}/xsa212.patch:-p1 \ + ${FILESDIR}/xsa213-4.7.patch:-p1 \ + ${FILESDIR}/xsa214.patch:-p1 \ + ${FILESDIR}/xsa215.patch:-p1 \ + ${FILESDIR}/xsa217.patch:-p1 \ + ${FILESDIR}/0001-IOMMU-handle-IOMMU-mapping-and-unmapping-failures.patch:-p1 \ + ${FILESDIR}/0002-gnttab-fix-unmap-pin-accounting-race.patch:-p1 \ + ${FILESDIR}/0003-gnttab-Avoid-potential-double-put-of-maptrack-entry.patch:-p1 \ + ${FILESDIR}/0004-gnttab-correct-maptrack-table-accesses.patch:-p1 \ + ${FILESDIR}/xsa219-4.8.patch:-p1 \ + ${FILESDIR}/xsa220-4.7.patch:-p1 \ + ${FILESDIR}/xsa221.patch:-p1 \ + ${FILESDIR}/xsa222-1-4.7.patch:-p1 \ + ${FILESDIR}/xsa222-2-4.7.patch:-p1 \ + ${FILESDIR}/0001-gnttab-Fix-handling-of-dev_bus_addr-during-unmap.patch:-p1 \ + ${FILESDIR}/0002-gnttab-never-create-host-mapping-unless-asked-to.patch:-p1 \ + ${FILESDIR}/0003-gnttab-correct-logic-to-get-page-references-during-m.patch:-p1 \ + ${FILESDIR}/0004-gnttab-__gnttab_unmap_common_complete-is-all-or-noth.patch:-p1 \ + ${FILESDIR}/xsa226-4.7.patch:-p1 \ + ${FILESDIR}/xsa227.patch:-p1 \ + ${FILESDIR}/xsa228-4.8.patch:-p1 \ + ${FILESDIR}/xsa230.patch:-p1 \ + ${FILESDIR}/xsa231-4.7.patch:-p1 \ + ${FILESDIR}/xsa232.patch:-p1 \ + ${FILESDIR}/xsa233.patch:-p1 \ + ${FILESDIR}/xsa234-4.8.patch:-p1 \ + ${FILESDIR}/0001-x86-dont-allow-MSI-pIRQ-mapping-on-unowned-device.patch:-p1 \ + ${FILESDIR}/0002-x86-enforce-proper-privilege-when-mapping-pIRQ-s.patch:-p1 \ + ${FILESDIR}/0003-x86-MSI-disallow-redundant-enabling.patch:-p1 \ + ${FILESDIR}/0004-x86-IRQ-conditionally-preserve-irq-pirq-mapping-on-error.patch:-p1 \ + ${FILESDIR}/0005-x86-FLASK-fix-unmap-domain-IRQ-XSM-hook.patch:-p1 \ + ${FILESDIR}/xsa238.patch:-p1 \ + ${FILESDIR}/xsa239.patch:-p1 \ + ${FILESDIR}/0001-x86-limit-linear-page-table-use-to-a-single-level.patch:-p1 \ + ${FILESDIR}/0002-x86-mm-Disable-PV-linear-pagetables-by-default.patch:-p1 \ + ${FILESDIR}/xsa241-4.8.patch:-p1 \ + ${FILESDIR}/xsa242-4.9.patch:-p1 \ + ${FILESDIR}/xsa243-4.7.patch:-p1 \ + ${FILESDIR}/xsa244-4.7.patch:-p1 \ + ${FILESDIR}/xsa236-4.9.patch:-p1 \ + ${FILESDIR}/0001-x86-compat-fix-compilation-errors-with-clang-6.patch:-p1 \ + ${FILESDIR}/xsa246-4.7.patch:-p1 \ + ${FILESDIR}/0001-p2m-Always-check-to-see-if-removing-a-p2m-entry-actu.patch:-p1 \ + ${FILESDIR}/0002-p2m-Check-return-value-of-p2m_set_entry-when-decreas.patch:-p1 \ + ${FILESDIR}/xsa248-4.8.patch:-p1 \ + ${FILESDIR}/xsa249.patch:-p1 \ + ${FILESDIR}/xsa250.patch:-p1 \ + ${FILESDIR}/xsa251-4.8.patch:-p1 \ + ${FILESDIR}/0001-x86-entry-Remove-support-for-partial-cpu_user_regs-f.patch:-p1 \ + ${FILESDIR}/0001-x86-mm-Always-set-_PAGE_ACCESSED-on-L4e-updates.patch:-p1 \ + ${FILESDIR}/0001-x86-Meltdown-band-aid-against-malicious-64-bit-PV-gu.patch:-p1 \ + ${FILESDIR}/0002-x86-allow-Meltdown-band-aid-to-be-disabled.patch:-p1 + +.include + +.if ${OPSYS} != FreeBSD +IGNORE= only supported on FreeBSD +.endif + +.if ${OSVERSION} < 1100055 +IGNORE= only supported on recent FreeBSD 11 +.endif + +pre-build: + ${MAKE_CMD} -C ${WRKSRC}/xen defconfig ${MAKE_ARGS} + # Enable hypervisor hot-patching. + echo 'CONFIG_XSPLICE=y' >> ${WRKSRC}/xen/.config + echo 'CONFIG_FAST_SYMBOL_LOOKUP=y' >> ${WRKSRC}/xen/.config + +# The ports native 'build' target cannot be used because it sets +# CFLAGS, and that breaks the Xen build system. +do-build: + ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${WRKSRC}/xen build ${MAKE_ARGS} + +do-install: + ${MKDIR} ${STAGEDIR}/boot + ${INSTALL_PROGRAM} ${WRKSRC}/xen/xen ${STAGEDIR}/boot + ${INSTALL_DATA} ${FILESDIR}/xen.4th ${STAGEDIR}/boot + +.include Property changes on: head/emulators/xen-kernel47/Makefile ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/0001-x86-entry-Remove-support-for-partial-cpu_user_regs-f.patch =================================================================== --- head/emulators/xen-kernel47/files/0001-x86-entry-Remove-support-for-partial-cpu_user_regs-f.patch (nonexistent) +++ head/emulators/xen-kernel47/files/0001-x86-entry-Remove-support-for-partial-cpu_user_regs-f.patch (revision 475254) @@ -0,0 +1,399 @@ +From 0e6c6fc449000d97f9fa87ed1fbe23f0cf21406b Mon Sep 17 00:00:00 2001 +From: Andrew Cooper +Date: Wed, 17 Jan 2018 17:22:34 +0100 +Subject: [PATCH] x86/entry: Remove support for partial cpu_user_regs frames + +Save all GPRs on entry to Xen. + +The entry_int82() path is via a DPL1 gate, only usable by 32bit PV guests, so +can get away with only saving the 32bit registers. All other entrypoints can +be reached from 32 or 64bit contexts. + +This is part of XSA-254. + +Signed-off-by: Andrew Cooper +Reviewed-by: Wei Liu +Acked-by: Jan Beulich +master commit: f9eb74789af77e985ae653193f3622263499f674 +master date: 2018-01-05 19:57:07 +0000 +--- + tools/tests/x86_emulator/x86_emulate.c | 1 - + xen/arch/x86/domain.c | 1 - + xen/arch/x86/traps.c | 2 - + xen/arch/x86/x86_64/compat/entry.S | 7 ++- + xen/arch/x86/x86_64/entry.S | 12 ++-- + xen/arch/x86/x86_64/traps.c | 13 ++-- + xen/arch/x86/x86_emulate.c | 1 - + xen/arch/x86/x86_emulate/x86_emulate.c | 8 +-- + xen/common/wait.c | 1 - + xen/include/asm-x86/asm_defns.h | 107 +++------------------------------ + 10 files changed, 26 insertions(+), 127 deletions(-) + +diff --git a/tools/tests/x86_emulator/x86_emulate.c b/tools/tests/x86_emulator/x86_emulate.c +index 10e3f61baa..c12527a50b 100644 +--- a/tools/tests/x86_emulator/x86_emulate.c ++++ b/tools/tests/x86_emulator/x86_emulate.c +@@ -24,7 +24,6 @@ typedef bool bool_t; + #endif + + #define cpu_has_amd_erratum(nr) 0 +-#define mark_regs_dirty(r) ((void)(r)) + + #define __packed __attribute__((packed)) + +diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c +index ceeadabbfd..6539b75fa7 100644 +--- a/xen/arch/x86/domain.c ++++ b/xen/arch/x86/domain.c +@@ -148,7 +148,6 @@ static void noreturn continue_idle_domain(struct vcpu *v) + static void noreturn continue_nonidle_domain(struct vcpu *v) + { + check_wakeup_from_wait(); +- mark_regs_dirty(guest_cpu_user_regs()); + reset_stack_and_jump(ret_from_intr); + } + +diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c +index 05b4b0811d..0928c9b235 100644 +--- a/xen/arch/x86/traps.c ++++ b/xen/arch/x86/traps.c +@@ -2456,7 +2456,6 @@ static int emulate_privileged_op(struct cpu_user_regs *regs) + goto fail; + if ( admin_io_okay(port, op_bytes, currd) ) + { +- mark_regs_dirty(regs); + io_emul(regs); + } + else +@@ -2486,7 +2485,6 @@ static int emulate_privileged_op(struct cpu_user_regs *regs) + goto fail; + if ( admin_io_okay(port, op_bytes, currd) ) + { +- mark_regs_dirty(regs); + io_emul(regs); + if ( (op_bytes == 1) && pv_post_outb_hook ) + pv_post_outb_hook(port, regs->eax); +diff --git a/xen/arch/x86/x86_64/compat/entry.S b/xen/arch/x86/x86_64/compat/entry.S +index 794bb44266..7ee01597a3 100644 +--- a/xen/arch/x86/x86_64/compat/entry.S ++++ b/xen/arch/x86/x86_64/compat/entry.S +@@ -15,7 +15,8 @@ + ENTRY(compat_hypercall) + ASM_CLAC + pushq $0 +- SAVE_VOLATILE type=TRAP_syscall compat=1 ++ movl $TRAP_syscall, 4(%rsp) ++ SAVE_ALL compat=1 /* DPL1 gate, restricted to 32bit PV guests only. */ + CR4_PV32_RESTORE + + cmpb $0,untrusted_msi(%rip) +@@ -127,7 +128,6 @@ compat_test_guest_events: + /* %rbx: struct vcpu */ + compat_process_softirqs: + sti +- andl $~TRAP_regs_partial,UREGS_entry_vector(%rsp) + call do_softirq + jmp compat_test_all_events + +@@ -268,7 +268,8 @@ ENTRY(cstar_enter) + pushq $FLAT_USER_CS32 + pushq %rcx + pushq $0 +- SAVE_VOLATILE TRAP_syscall ++ movl $TRAP_syscall, 4(%rsp) ++ SAVE_ALL + GET_CURRENT(bx) + movq VCPU_domain(%rbx),%rcx + cmpb $0,DOMAIN_is_32bit_pv(%rcx) +diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S +index 708d9b9402..cebb1e4f4f 100644 +--- a/xen/arch/x86/x86_64/entry.S ++++ b/xen/arch/x86/x86_64/entry.S +@@ -97,7 +97,8 @@ ENTRY(lstar_enter) + pushq $FLAT_KERNEL_CS64 + pushq %rcx + pushq $0 +- SAVE_VOLATILE TRAP_syscall ++ movl $TRAP_syscall, 4(%rsp) ++ SAVE_ALL + GET_CURRENT(bx) + testb $TF_kernel_mode,VCPU_thread_flags(%rbx) + jz switch_to_kernel +@@ -192,7 +193,6 @@ test_guest_events: + /* %rbx: struct vcpu */ + process_softirqs: + sti +- SAVE_PRESERVED + call do_softirq + jmp test_all_events + +@@ -246,7 +246,8 @@ GLOBAL(sysenter_eflags_saved) + pushq $3 /* ring 3 null cs */ + pushq $0 /* null rip */ + pushq $0 +- SAVE_VOLATILE TRAP_syscall ++ movl $TRAP_syscall, 4(%rsp) ++ SAVE_ALL + GET_CURRENT(bx) + cmpb $0,VCPU_sysenter_disables_events(%rbx) + movq VCPU_sysenter_addr(%rbx),%rax +@@ -263,7 +264,6 @@ UNLIKELY_END(sysenter_nt_set) + leal (,%rcx,TBF_INTERRUPT),%ecx + UNLIKELY_START(z, sysenter_gpf) + movq VCPU_trap_ctxt(%rbx),%rsi +- SAVE_PRESERVED + movl $TRAP_gp_fault,UREGS_entry_vector(%rsp) + movl %eax,TRAPBOUNCE_error_code(%rdx) + movq TRAP_gp_fault * TRAPINFO_sizeof + TRAPINFO_eip(%rsi),%rax +@@ -281,7 +281,8 @@ UNLIKELY_END(sysenter_gpf) + ENTRY(int80_direct_trap) + ASM_CLAC + pushq $0 +- SAVE_VOLATILE 0x80 ++ movl $0x80, 4(%rsp) ++ SAVE_ALL + + cmpb $0,untrusted_msi(%rip) + UNLIKELY_START(ne, msi_check) +@@ -309,7 +310,6 @@ int80_slow_path: + * IDT entry with DPL==0. + */ + movl $((0x80 << 3) | X86_XEC_IDT),UREGS_error_code(%rsp) +- SAVE_PRESERVED + movl $TRAP_gp_fault,UREGS_entry_vector(%rsp) + /* A GPF wouldn't have incremented the instruction pointer. */ + subq $2,UREGS_rip(%rsp) +diff --git a/xen/arch/x86/x86_64/traps.c b/xen/arch/x86/x86_64/traps.c +index 22816100fd..bf8dfcbdee 100644 +--- a/xen/arch/x86/x86_64/traps.c ++++ b/xen/arch/x86/x86_64/traps.c +@@ -81,15 +81,10 @@ static void _show_registers( + regs->rbp, regs->rsp, regs->r8); + printk("r9: %016lx r10: %016lx r11: %016lx\n", + regs->r9, regs->r10, regs->r11); +- if ( !(regs->entry_vector & TRAP_regs_partial) ) +- { +- printk("r12: %016lx r13: %016lx r14: %016lx\n", +- regs->r12, regs->r13, regs->r14); +- printk("r15: %016lx cr0: %016lx cr4: %016lx\n", +- regs->r15, crs[0], crs[4]); +- } +- else +- printk("cr0: %016lx cr4: %016lx\n", crs[0], crs[4]); ++ printk("r12: %016lx r13: %016lx r14: %016lx\n", ++ regs->r12, regs->r13, regs->r14); ++ printk("r15: %016lx cr0: %016lx cr4: %016lx\n", ++ regs->r15, crs[0], crs[4]); + printk("cr3: %016lx cr2: %016lx\n", crs[3], crs[2]); + printk("fsb: %016lx gsb: %016lx gss: %016lx\n", + crs[5], crs[6], crs[7]); +diff --git a/xen/arch/x86/x86_emulate.c b/xen/arch/x86/x86_emulate.c +index 28132b5dbc..43730026c2 100644 +--- a/xen/arch/x86/x86_emulate.c ++++ b/xen/arch/x86/x86_emulate.c +@@ -11,7 +11,6 @@ + + #include + #include +-#include /* mark_regs_dirty() */ + #include /* current_cpu_info */ + #include /* cpu_has_amd_erratum() */ + +diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c b/xen/arch/x86/x86_emulate/x86_emulate.c +index 4ee3df9247..fcfe9f7de7 100644 +--- a/xen/arch/x86/x86_emulate/x86_emulate.c ++++ b/xen/arch/x86/x86_emulate/x86_emulate.c +@@ -1424,10 +1424,10 @@ decode_register( + case 9: p = ®s->r9; break; + case 10: p = ®s->r10; break; + case 11: p = ®s->r11; break; +- case 12: mark_regs_dirty(regs); p = ®s->r12; break; +- case 13: mark_regs_dirty(regs); p = ®s->r13; break; +- case 14: mark_regs_dirty(regs); p = ®s->r14; break; +- case 15: mark_regs_dirty(regs); p = ®s->r15; break; ++ case 12: p = ®s->r12; break; ++ case 13: p = ®s->r13; break; ++ case 14: p = ®s->r14; break; ++ case 15: p = ®s->r15; break; + #endif + default: BUG(); p = NULL; break; + } +diff --git a/xen/common/wait.c b/xen/common/wait.c +index 4ac98c07fe..398f653174 100644 +--- a/xen/common/wait.c ++++ b/xen/common/wait.c +@@ -128,7 +128,6 @@ static void __prepare_to_wait(struct waitqueue_vcpu *wqv) + unsigned long dummy; + u32 entry_vector = cpu_info->guest_cpu_user_regs.entry_vector; + +- cpu_info->guest_cpu_user_regs.entry_vector &= ~TRAP_regs_partial; + ASSERT(wqv->esp == 0); + + /* Save current VCPU affinity; force wakeup on *this* CPU only. */ +diff --git a/xen/include/asm-x86/asm_defns.h b/xen/include/asm-x86/asm_defns.h +index 279d70298f..6e5c079ad8 100644 +--- a/xen/include/asm-x86/asm_defns.h ++++ b/xen/include/asm-x86/asm_defns.h +@@ -17,15 +17,6 @@ + void ret_from_intr(void); + #endif + +-#ifdef CONFIG_FRAME_POINTER +-/* Indicate special exception stack frame by inverting the frame pointer. */ +-#define SETUP_EXCEPTION_FRAME_POINTER(offs) \ +- leaq offs(%rsp),%rbp; \ +- notq %rbp +-#else +-#define SETUP_EXCEPTION_FRAME_POINTER(offs) +-#endif +- + #ifndef NDEBUG + #define ASSERT_INTERRUPT_STATUS(x, msg) \ + pushf; \ +@@ -42,31 +33,6 @@ void ret_from_intr(void); + #define ASSERT_INTERRUPTS_DISABLED \ + ASSERT_INTERRUPT_STATUS(z, "INTERRUPTS DISABLED") + +-/* +- * This flag is set in an exception frame when registers R12-R15 did not get +- * saved. +- */ +-#define _TRAP_regs_partial 16 +-#define TRAP_regs_partial (1 << _TRAP_regs_partial) +-/* +- * This flag gets set in an exception frame when registers R12-R15 possibly +- * get modified from their originally saved values and hence need to be +- * restored even if the normal call flow would restore register values. +- * +- * The flag being set implies _TRAP_regs_partial to be unset. Restoring +- * R12-R15 thus is +- * - required when this flag is set, +- * - safe when _TRAP_regs_partial is unset. +- */ +-#define _TRAP_regs_dirty 17 +-#define TRAP_regs_dirty (1 << _TRAP_regs_dirty) +- +-#define mark_regs_dirty(r) ({ \ +- struct cpu_user_regs *r__ = (r); \ +- ASSERT(!((r__)->entry_vector & TRAP_regs_partial)); \ +- r__->entry_vector |= TRAP_regs_dirty; \ +-}) +- + #ifdef __ASSEMBLY__ + # define _ASM_EX(p) p-. + #else +@@ -236,7 +202,7 @@ static always_inline void stac(void) + #endif + + #ifdef __ASSEMBLY__ +-.macro SAVE_ALL op ++.macro SAVE_ALL op, compat=0 + .ifeqs "\op", "CLAC" + ASM_CLAC + .else +@@ -255,40 +221,6 @@ static always_inline void stac(void) + movq %rdx,UREGS_rdx(%rsp) + movq %rcx,UREGS_rcx(%rsp) + movq %rax,UREGS_rax(%rsp) +- movq %r8,UREGS_r8(%rsp) +- movq %r9,UREGS_r9(%rsp) +- movq %r10,UREGS_r10(%rsp) +- movq %r11,UREGS_r11(%rsp) +- movq %rbx,UREGS_rbx(%rsp) +- movq %rbp,UREGS_rbp(%rsp) +- SETUP_EXCEPTION_FRAME_POINTER(UREGS_rbp) +- movq %r12,UREGS_r12(%rsp) +- movq %r13,UREGS_r13(%rsp) +- movq %r14,UREGS_r14(%rsp) +- movq %r15,UREGS_r15(%rsp) +-.endm +- +-/* +- * Save all registers not preserved by C code or used in entry/exit code. Mark +- * the frame as partial. +- * +- * @type: exception type +- * @compat: R8-R15 don't need saving, and the frame nevertheless is complete +- */ +-.macro SAVE_VOLATILE type compat=0 +-.if \compat +- movl $\type,UREGS_entry_vector-UREGS_error_code(%rsp) +-.else +- movl $\type|TRAP_regs_partial,\ +- UREGS_entry_vector-UREGS_error_code(%rsp) +-.endif +- addq $-(UREGS_error_code-UREGS_r15),%rsp +- cld +- movq %rdi,UREGS_rdi(%rsp) +- movq %rsi,UREGS_rsi(%rsp) +- movq %rdx,UREGS_rdx(%rsp) +- movq %rcx,UREGS_rcx(%rsp) +- movq %rax,UREGS_rax(%rsp) + .if !\compat + movq %r8,UREGS_r8(%rsp) + movq %r9,UREGS_r9(%rsp) +@@ -297,20 +229,17 @@ static always_inline void stac(void) + .endif + movq %rbx,UREGS_rbx(%rsp) + movq %rbp,UREGS_rbp(%rsp) +- SETUP_EXCEPTION_FRAME_POINTER(UREGS_rbp) +-.endm +- +-/* +- * Complete a frame potentially only partially saved. +- */ +-.macro SAVE_PRESERVED +- btrl $_TRAP_regs_partial,UREGS_entry_vector(%rsp) +- jnc 987f ++#ifdef CONFIG_FRAME_POINTER ++/* Indicate special exception stack frame by inverting the frame pointer. */ ++ leaq UREGS_rbp(%rsp), %rbp ++ notq %rbp ++#endif ++.if !\compat + movq %r12,UREGS_r12(%rsp) + movq %r13,UREGS_r13(%rsp) + movq %r14,UREGS_r14(%rsp) + movq %r15,UREGS_r15(%rsp) +-987: ++.endif + .endm + + #define LOAD_ONE_REG(reg, compat) \ +@@ -351,33 +280,13 @@ static always_inline void stac(void) + * @compat: R8-R15 don't need reloading + */ + .macro RESTORE_ALL adj=0 compat=0 +-.if !\compat +- testl $TRAP_regs_dirty,UREGS_entry_vector(%rsp) +-.endif + LOAD_C_CLOBBERED \compat + .if !\compat +- jz 987f + movq UREGS_r15(%rsp),%r15 + movq UREGS_r14(%rsp),%r14 + movq UREGS_r13(%rsp),%r13 + movq UREGS_r12(%rsp),%r12 +-#ifndef NDEBUG +- .subsection 1 +-987: testl $TRAP_regs_partial,UREGS_entry_vector(%rsp) +- jnz 987f +- cmpq UREGS_r15(%rsp),%r15 +- jne 789f +- cmpq UREGS_r14(%rsp),%r14 +- jne 789f +- cmpq UREGS_r13(%rsp),%r13 +- jne 789f +- cmpq UREGS_r12(%rsp),%r12 +- je 987f +-789: BUG /* Corruption of partial register state. */ +- .subsection 0 +-#endif + .endif +-987: + LOAD_ONE_REG(bp, \compat) + LOAD_ONE_REG(bx, \compat) + subq $-(UREGS_error_code-UREGS_r15+\adj), %rsp +-- +2.15.1 + Property changes on: head/emulators/xen-kernel47/files/0001-x86-entry-Remove-support-for-partial-cpu_user_regs-f.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/0001-x86-mm-Always-set-_PAGE_ACCESSED-on-L4e-updates.patch =================================================================== --- head/emulators/xen-kernel47/files/0001-x86-mm-Always-set-_PAGE_ACCESSED-on-L4e-updates.patch (nonexistent) +++ head/emulators/xen-kernel47/files/0001-x86-mm-Always-set-_PAGE_ACCESSED-on-L4e-updates.patch (revision 475254) @@ -0,0 +1,45 @@ +From 9b76908e6e074d7efbeafe6bad066ecc5f3c3c43 Mon Sep 17 00:00:00 2001 +From: Andrew Cooper +Date: Wed, 17 Jan 2018 17:23:37 +0100 +Subject: [PATCH] x86/mm: Always set _PAGE_ACCESSED on L4e updates + +Signed-off-by: Andrew Cooper +Reviewed-by: Jan Beulich +master commit: bd61fe94bee0556bc2f64999a4a8315b93f90f21 +master date: 2018-01-15 13:53:16 +0000 +--- + xen/arch/x86/mm.c | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c +index ada12c05c5..50f500c940 100644 +--- a/xen/arch/x86/mm.c ++++ b/xen/arch/x86/mm.c +@@ -1296,11 +1296,23 @@ get_page_from_l4e( + _PAGE_USER|_PAGE_RW); \ + } while ( 0 ) + ++/* ++ * When shadowing an L4 behind the guests back (e.g. for per-pcpu ++ * purposes), we cannot efficiently sync access bit updates from hardware ++ * (on the shadow tables) back into the guest view. ++ * ++ * We therefore unconditionally set _PAGE_ACCESSED even in the guests ++ * view. This will appear to the guest as a CPU which proactively pulls ++ * all valid L4e's into its TLB, which is compatible with the x86 ABI. ++ * ++ * At the time of writing, all PV guests set the access bit anyway, so ++ * this is no actual change in their behaviour. ++ */ + #define adjust_guest_l4e(pl4e, d) \ + do { \ + if ( likely(l4e_get_flags((pl4e)) & _PAGE_PRESENT) && \ + likely(!is_pv_32bit_domain(d)) ) \ +- l4e_add_flags((pl4e), _PAGE_USER); \ ++ l4e_add_flags((pl4e), _PAGE_USER | _PAGE_ACCESSED); \ + } while ( 0 ) + + #define unadjust_guest_l3e(pl3e, d) \ +-- +2.15.1 + Property changes on: head/emulators/xen-kernel47/files/0001-x86-mm-Always-set-_PAGE_ACCESSED-on-L4e-updates.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/0001-p2m-Always-check-to-see-if-removing-a-p2m-entry-actu.patch =================================================================== --- head/emulators/xen-kernel47/files/0001-p2m-Always-check-to-see-if-removing-a-p2m-entry-actu.patch (nonexistent) +++ head/emulators/xen-kernel47/files/0001-p2m-Always-check-to-see-if-removing-a-p2m-entry-actu.patch (revision 475254) @@ -0,0 +1,176 @@ +From f345ca185e0c042ed12bf929a9e93efaf33397bb Mon Sep 17 00:00:00 2001 +From: George Dunlap +Date: Fri, 10 Nov 2017 16:53:54 +0000 +Subject: [PATCH 1/2] p2m: Always check to see if removing a p2m entry actually + worked + +The PoD zero-check functions speculatively remove memory from the p2m, +then check to see if it's completely zeroed, before putting it in the +cache. + +Unfortunately, the p2m_set_entry() calls may fail if the underlying +pagetable structure needs to change and the domain has exhausted its +p2m memory pool: for instance, if we're removing a 2MiB region out of +a 1GiB entry (in the p2m_pod_zero_check_superpage() case), or a 4k +region out of a 2MiB or larger entry (in the p2m_pod_zero_check() +case); and the return value is not checked. + +The underlying mfn will then be added into the PoD cache, and at some +point mapped into another location in the p2m. If the guest +afterwards ballons out this memory, it will be freed to the hypervisor +and potentially reused by another domain, in spite of the fact that +the original domain still has writable mappings to it. + +There are several places where p2m_set_entry() shouldn't be able to +fail, as it is guaranteed to write an entry of the same order that +succeeded before. Add a backstop of crashing the domain just in case, +and an ASSERT_UNREACHABLE() to flag up the broken assumption on debug +builds. + +While we're here, use PAGE_ORDER_2M rather than a magic constant. + +This is part of XSA-247. + +Reported-by: George Dunlap +Signed-off-by: George Dunlap +Reviewed-by: Jan Beulich +--- +v4: +- Removed some training whitespace +v3: +- Reformat reset clause to be more compact +- Make sure to set map[i] = NULL when unmapping in case we need to bail +v2: +- Crash a domain if a p2m_set_entry we think cannot fail fails anyway. +--- + xen/arch/x86/mm/p2m-pod.c | 77 +++++++++++++++++++++++++++++++++++++---------- + 1 file changed, 61 insertions(+), 16 deletions(-) + +diff --git a/xen/arch/x86/mm/p2m-pod.c b/xen/arch/x86/mm/p2m-pod.c +index 87082cf65f..5ec8a37949 100644 +--- a/xen/arch/x86/mm/p2m-pod.c ++++ b/xen/arch/x86/mm/p2m-pod.c +@@ -754,8 +754,10 @@ p2m_pod_zero_check_superpage(struct p2m_domain *p2m, unsigned long gfn) + } + + /* Try to remove the page, restoring old mapping if it fails. */ +- p2m_set_entry(p2m, gfn, _mfn(INVALID_MFN), PAGE_ORDER_2M, +- p2m_populate_on_demand, p2m->default_access); ++ if ( p2m_set_entry(p2m, gfn, _mfn(INVALID_MFN), PAGE_ORDER_2M, ++ p2m_populate_on_demand, p2m->default_access) ) ++ goto out; ++ + p2m_tlb_flush_sync(p2m); + + /* Make none of the MFNs are used elsewhere... for example, mapped +@@ -812,9 +814,18 @@ p2m_pod_zero_check_superpage(struct p2m_domain *p2m, unsigned long gfn) + ret = SUPERPAGE_PAGES; + + out_reset: +- if ( reset ) +- p2m_set_entry(p2m, gfn, mfn0, 9, type0, p2m->default_access); +- ++ /* ++ * This p2m_set_entry() call shouldn't be able to fail, since the same order ++ * on the same gfn succeeded above. If that turns out to be false, crashing ++ * the domain should be the safest way of making sure we don't leak memory. ++ */ ++ if ( reset && p2m_set_entry(p2m, gfn, mfn0, PAGE_ORDER_2M, ++ type0, p2m->default_access) ) ++ { ++ ASSERT_UNREACHABLE(); ++ domain_crash(d); ++ } ++ + out: + gfn_unlock(p2m, gfn, SUPERPAGE_ORDER); + return ret; +@@ -871,19 +882,30 @@ p2m_pod_zero_check(struct p2m_domain *p2m, unsigned long *gfns, int count) + } + + /* Try to remove the page, restoring old mapping if it fails. */ +- p2m_set_entry(p2m, gfns[i], _mfn(INVALID_MFN), PAGE_ORDER_4K, +- p2m_populate_on_demand, p2m->default_access); ++ if ( p2m_set_entry(p2m, gfns[i], _mfn(INVALID_MFN), PAGE_ORDER_4K, ++ p2m_populate_on_demand, p2m->default_access) ) ++ goto skip; + + /* See if the page was successfully unmapped. (Allow one refcount + * for being allocated to a domain.) */ + if ( (mfn_to_page(mfns[i])->count_info & PGC_count_mask) > 1 ) + { ++ /* ++ * If the previous p2m_set_entry call succeeded, this one shouldn't ++ * be able to fail. If it does, crashing the domain should be safe. ++ */ ++ if ( p2m_set_entry(p2m, gfns[i], mfns[i], PAGE_ORDER_4K, ++ types[i], p2m->default_access) ) ++ { ++ ASSERT_UNREACHABLE(); ++ domain_crash(d); ++ goto out_unmap; ++ } ++ ++ skip: + unmap_domain_page(map[i]); + map[i] = NULL; + +- p2m_set_entry(p2m, gfns[i], mfns[i], PAGE_ORDER_4K, +- types[i], p2m->default_access); +- + continue; + } + } +@@ -902,12 +924,25 @@ p2m_pod_zero_check(struct p2m_domain *p2m, unsigned long *gfns, int count) + + unmap_domain_page(map[i]); + +- /* See comment in p2m_pod_zero_check_superpage() re gnttab +- * check timing. */ +- if ( j < PAGE_SIZE/sizeof(*map[i]) ) ++ map[i] = NULL; ++ ++ /* ++ * See comment in p2m_pod_zero_check_superpage() re gnttab ++ * check timing. ++ */ ++ if ( j < (PAGE_SIZE / sizeof(*map[i])) ) + { +- p2m_set_entry(p2m, gfns[i], mfns[i], PAGE_ORDER_4K, +- types[i], p2m->default_access); ++ /* ++ * If the previous p2m_set_entry call succeeded, this one shouldn't ++ * be able to fail. If it does, crashing the domain should be safe. ++ */ ++ if ( p2m_set_entry(p2m, gfns[i], mfns[i], PAGE_ORDER_4K, ++ types[i], p2m->default_access) ) ++ { ++ ASSERT_UNREACHABLE(); ++ domain_crash(d); ++ goto out_unmap; ++ } + } + else + { +@@ -931,7 +966,17 @@ p2m_pod_zero_check(struct p2m_domain *p2m, unsigned long *gfns, int count) + p2m->pod.entry_count++; + } + } +- ++ ++ return; ++ ++out_unmap: ++ /* ++ * Something went wrong, probably crashing the domain. Unmap ++ * everything and return. ++ */ ++ for ( i = 0; i < count; i++ ) ++ if ( map[i] ) ++ unmap_domain_page(map[i]); + } + + #define POD_SWEEP_LIMIT 1024 +-- +2.15.0 + Property changes on: head/emulators/xen-kernel47/files/0001-p2m-Always-check-to-see-if-removing-a-p2m-entry-actu.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/0001-x86-Meltdown-band-aid-against-malicious-64-bit-PV-gu.patch =================================================================== --- head/emulators/xen-kernel47/files/0001-x86-Meltdown-band-aid-against-malicious-64-bit-PV-gu.patch (nonexistent) +++ head/emulators/xen-kernel47/files/0001-x86-Meltdown-band-aid-against-malicious-64-bit-PV-gu.patch (revision 475254) @@ -0,0 +1,756 @@ +From e19517a3355acaaa2ff83018bc41e7fd044161e5 Mon Sep 17 00:00:00 2001 +From: Jan Beulich +Date: Wed, 17 Jan 2018 17:24:12 +0100 +Subject: [PATCH 1/2] x86: Meltdown band-aid against malicious 64-bit PV guests + +This is a very simplistic change limiting the amount of memory a running +64-bit PV guest has mapped (and hence available for attacking): Only the +mappings of stack, IDT, and TSS are being cloned from the direct map +into per-CPU page tables. Guest controlled parts of the page tables are +being copied into those per-CPU page tables upon entry into the guest. +Cross-vCPU synchronization of top level page table entry changes is +being effected by forcing other active vCPU-s of the guest into the +hypervisor. + +The change to context_switch() isn't strictly necessary, but there's no +reason to keep switching page tables once a PV guest is being scheduled +out. + +This isn't providing full isolation yet, but it should be covering all +pieces of information exposure of which would otherwise require an XSA. + +There is certainly much room for improvement, especially of performance, +here - first and foremost suppressing all the negative effects on AMD +systems. But in the interest of backportability (including to really old +hypervisors, which may not even have alternative patching) any such is +being left out here. + +Signed-off-by: Jan Beulich +Reviewed-by: Andrew Cooper +master commit: 5784de3e2067ed73efc2fe42e62831e8ae7f46c4 +master date: 2018-01-16 17:49:03 +0100 +--- + xen/arch/x86/domain.c | 5 + + xen/arch/x86/mm.c | 17 ++++ + xen/arch/x86/smpboot.c | 198 +++++++++++++++++++++++++++++++++++++ + xen/arch/x86/x86_64/asm-offsets.c | 2 + + xen/arch/x86/x86_64/compat/entry.S | 11 +++ + xen/arch/x86/x86_64/entry.S | 149 +++++++++++++++++++++++++++- + xen/include/asm-x86/asm_defns.h | 30 ++++++ + xen/include/asm-x86/current.h | 12 +++ + xen/include/asm-x86/processor.h | 1 + + xen/include/asm-x86/x86_64/page.h | 5 +- + 10 files changed, 424 insertions(+), 6 deletions(-) + +diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c +index 6539b75fa7..3cf18f95b7 100644 +--- a/xen/arch/x86/domain.c ++++ b/xen/arch/x86/domain.c +@@ -1949,6 +1949,9 @@ static void paravirt_ctxt_switch_to(struct vcpu *v) + + switch_kernel_stack(v); + ++ this_cpu(root_pgt)[root_table_offset(PERDOMAIN_VIRT_START)] = ++ l4e_from_page(v->domain->arch.perdomain_l3_pg, __PAGE_HYPERVISOR_RW); ++ + cr4 = pv_guest_cr4_to_real_cr4(v); + if ( unlikely(cr4 != read_cr4()) ) + write_cr4(cr4); +@@ -2096,6 +2099,8 @@ void context_switch(struct vcpu *prev, struct vcpu *next) + + ASSERT(local_irq_is_enabled()); + ++ get_cpu_info()->xen_cr3 = 0; ++ + cpumask_copy(&dirty_mask, next->vcpu_dirty_cpumask); + /* Allow at most one CPU at a time to be dirty. */ + ASSERT(cpumask_weight(&dirty_mask) <= 1); +diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c +index 50f500c940..c9e4003989 100644 +--- a/xen/arch/x86/mm.c ++++ b/xen/arch/x86/mm.c +@@ -3857,6 +3857,7 @@ long do_mmu_update( + struct vcpu *curr = current, *v = curr; + struct domain *d = v->domain, *pt_owner = d, *pg_owner; + struct domain_mmap_cache mapcache; ++ bool_t sync_guest = 0; + uint32_t xsm_needed = 0; + uint32_t xsm_checked = 0; + int rc = put_old_guest_table(curr); +@@ -4005,6 +4006,8 @@ long do_mmu_update( + case PGT_l4_page_table: + rc = mod_l4_entry(va, l4e_from_intpte(req.val), mfn, + cmd == MMU_PT_UPDATE_PRESERVE_AD, v); ++ if ( !rc ) ++ sync_guest = 1; + break; + case PGT_writable_page: + perfc_incr(writable_mmu_updates); +@@ -4107,6 +4110,20 @@ long do_mmu_update( + + domain_mmap_cache_destroy(&mapcache); + ++ if ( sync_guest ) ++ { ++ /* ++ * Force other vCPU-s of the affected guest to pick up L4 entry ++ * changes (if any). Issue a flush IPI with empty operation mask to ++ * facilitate this (including ourselves waiting for the IPI to ++ * actually have arrived). Utilize the fact that FLUSH_VA_VALID is ++ * meaningless without FLUSH_CACHE, but will allow to pass the no-op ++ * check in flush_area_mask(). ++ */ ++ flush_area_mask(pt_owner->domain_dirty_cpumask, ++ ZERO_BLOCK_PTR, FLUSH_VA_VALID); ++ } ++ + perfc_add(num_page_updates, i); + + out: +diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c +index f9e4ee85ff..eaeec5acf0 100644 +--- a/xen/arch/x86/smpboot.c ++++ b/xen/arch/x86/smpboot.c +@@ -319,6 +319,9 @@ void start_secondary(void *unused) + */ + spin_debug_disable(); + ++ get_cpu_info()->xen_cr3 = 0; ++ get_cpu_info()->pv_cr3 = __pa(this_cpu(root_pgt)); ++ + load_system_tables(); + + /* Full exception support from here on in. */ +@@ -628,6 +631,187 @@ void cpu_exit_clear(unsigned int cpu) + set_cpu_state(CPU_STATE_DEAD); + } + ++static int clone_mapping(const void *ptr, root_pgentry_t *rpt) ++{ ++ unsigned long linear = (unsigned long)ptr, pfn; ++ unsigned int flags; ++ l3_pgentry_t *pl3e = l4e_to_l3e(idle_pg_table[root_table_offset(linear)]) + ++ l3_table_offset(linear); ++ l2_pgentry_t *pl2e; ++ l1_pgentry_t *pl1e; ++ ++ if ( linear < DIRECTMAP_VIRT_START ) ++ return 0; ++ ++ flags = l3e_get_flags(*pl3e); ++ ASSERT(flags & _PAGE_PRESENT); ++ if ( flags & _PAGE_PSE ) ++ { ++ pfn = (l3e_get_pfn(*pl3e) & ~((1UL << (2 * PAGETABLE_ORDER)) - 1)) | ++ (PFN_DOWN(linear) & ((1UL << (2 * PAGETABLE_ORDER)) - 1)); ++ flags &= ~_PAGE_PSE; ++ } ++ else ++ { ++ pl2e = l3e_to_l2e(*pl3e) + l2_table_offset(linear); ++ flags = l2e_get_flags(*pl2e); ++ ASSERT(flags & _PAGE_PRESENT); ++ if ( flags & _PAGE_PSE ) ++ { ++ pfn = (l2e_get_pfn(*pl2e) & ~((1UL << PAGETABLE_ORDER) - 1)) | ++ (PFN_DOWN(linear) & ((1UL << PAGETABLE_ORDER) - 1)); ++ flags &= ~_PAGE_PSE; ++ } ++ else ++ { ++ pl1e = l2e_to_l1e(*pl2e) + l1_table_offset(linear); ++ flags = l1e_get_flags(*pl1e); ++ if ( !(flags & _PAGE_PRESENT) ) ++ return 0; ++ pfn = l1e_get_pfn(*pl1e); ++ } ++ } ++ ++ if ( !(root_get_flags(rpt[root_table_offset(linear)]) & _PAGE_PRESENT) ) ++ { ++ pl3e = alloc_xen_pagetable(); ++ if ( !pl3e ) ++ return -ENOMEM; ++ clear_page(pl3e); ++ l4e_write(&rpt[root_table_offset(linear)], ++ l4e_from_paddr(__pa(pl3e), __PAGE_HYPERVISOR)); ++ } ++ else ++ pl3e = l4e_to_l3e(rpt[root_table_offset(linear)]); ++ ++ pl3e += l3_table_offset(linear); ++ ++ if ( !(l3e_get_flags(*pl3e) & _PAGE_PRESENT) ) ++ { ++ pl2e = alloc_xen_pagetable(); ++ if ( !pl2e ) ++ return -ENOMEM; ++ clear_page(pl2e); ++ l3e_write(pl3e, l3e_from_paddr(__pa(pl2e), __PAGE_HYPERVISOR)); ++ } ++ else ++ { ++ ASSERT(!(l3e_get_flags(*pl3e) & _PAGE_PSE)); ++ pl2e = l3e_to_l2e(*pl3e); ++ } ++ ++ pl2e += l2_table_offset(linear); ++ ++ if ( !(l2e_get_flags(*pl2e) & _PAGE_PRESENT) ) ++ { ++ pl1e = alloc_xen_pagetable(); ++ if ( !pl1e ) ++ return -ENOMEM; ++ clear_page(pl1e); ++ l2e_write(pl2e, l2e_from_paddr(__pa(pl1e), __PAGE_HYPERVISOR)); ++ } ++ else ++ { ++ ASSERT(!(l2e_get_flags(*pl2e) & _PAGE_PSE)); ++ pl1e = l2e_to_l1e(*pl2e); ++ } ++ ++ pl1e += l1_table_offset(linear); ++ ++ if ( l1e_get_flags(*pl1e) & _PAGE_PRESENT ) ++ { ++ ASSERT(l1e_get_pfn(*pl1e) == pfn); ++ ASSERT(l1e_get_flags(*pl1e) == flags); ++ } ++ else ++ l1e_write(pl1e, l1e_from_pfn(pfn, flags)); ++ ++ return 0; ++} ++ ++DEFINE_PER_CPU(root_pgentry_t *, root_pgt); ++ ++static int setup_cpu_root_pgt(unsigned int cpu) ++{ ++ root_pgentry_t *rpt = alloc_xen_pagetable(); ++ unsigned int off; ++ int rc; ++ ++ if ( !rpt ) ++ return -ENOMEM; ++ ++ clear_page(rpt); ++ per_cpu(root_pgt, cpu) = rpt; ++ ++ rpt[root_table_offset(RO_MPT_VIRT_START)] = ++ idle_pg_table[root_table_offset(RO_MPT_VIRT_START)]; ++ /* SH_LINEAR_PT inserted together with guest mappings. */ ++ /* PERDOMAIN inserted during context switch. */ ++ rpt[root_table_offset(XEN_VIRT_START)] = ++ idle_pg_table[root_table_offset(XEN_VIRT_START)]; ++ ++ /* Install direct map page table entries for stack, IDT, and TSS. */ ++ for ( off = rc = 0; !rc && off < STACK_SIZE; off += PAGE_SIZE ) ++ rc = clone_mapping(__va(__pa(stack_base[cpu])) + off, rpt); ++ ++ if ( !rc ) ++ rc = clone_mapping(idt_tables[cpu], rpt); ++ if ( !rc ) ++ rc = clone_mapping(&per_cpu(init_tss, cpu), rpt); ++ ++ return rc; ++} ++ ++static void cleanup_cpu_root_pgt(unsigned int cpu) ++{ ++ root_pgentry_t *rpt = per_cpu(root_pgt, cpu); ++ unsigned int r; ++ ++ if ( !rpt ) ++ return; ++ ++ per_cpu(root_pgt, cpu) = NULL; ++ ++ for ( r = root_table_offset(DIRECTMAP_VIRT_START); ++ r < root_table_offset(HYPERVISOR_VIRT_END); ++r ) ++ { ++ l3_pgentry_t *l3t; ++ unsigned int i3; ++ ++ if ( !(root_get_flags(rpt[r]) & _PAGE_PRESENT) ) ++ continue; ++ ++ l3t = l4e_to_l3e(rpt[r]); ++ ++ for ( i3 = 0; i3 < L3_PAGETABLE_ENTRIES; ++i3 ) ++ { ++ l2_pgentry_t *l2t; ++ unsigned int i2; ++ ++ if ( !(l3e_get_flags(l3t[i3]) & _PAGE_PRESENT) ) ++ continue; ++ ++ ASSERT(!(l3e_get_flags(l3t[i3]) & _PAGE_PSE)); ++ l2t = l3e_to_l2e(l3t[i3]); ++ ++ for ( i2 = 0; i2 < L2_PAGETABLE_ENTRIES; ++i2 ) ++ { ++ if ( !(l2e_get_flags(l2t[i2]) & _PAGE_PRESENT) ) ++ continue; ++ ++ ASSERT(!(l2e_get_flags(l2t[i2]) & _PAGE_PSE)); ++ free_xen_pagetable(l2e_to_l1e(l2t[i2])); ++ } ++ ++ free_xen_pagetable(l2t); ++ } ++ ++ free_xen_pagetable(l3t); ++ } ++ ++ free_xen_pagetable(rpt); ++} ++ + static void cpu_smpboot_free(unsigned int cpu) + { + unsigned int order, socket = cpu_to_socket(cpu); +@@ -664,6 +848,8 @@ static void cpu_smpboot_free(unsigned int cpu) + free_domheap_page(mfn_to_page(mfn)); + } + ++ cleanup_cpu_root_pgt(cpu); ++ + order = get_order_from_pages(NR_RESERVED_GDT_PAGES); + free_xenheap_pages(per_cpu(gdt_table, cpu), order); + +@@ -719,6 +905,9 @@ static int cpu_smpboot_alloc(unsigned int cpu) + set_ist(&idt_tables[cpu][TRAP_nmi], IST_NONE); + set_ist(&idt_tables[cpu][TRAP_machine_check], IST_NONE); + ++ if ( setup_cpu_root_pgt(cpu) ) ++ goto oom; ++ + for ( stub_page = 0, i = cpu & ~(STUBS_PER_PAGE - 1); + i < nr_cpu_ids && i <= (cpu | (STUBS_PER_PAGE - 1)); ++i ) + if ( cpu_online(i) && cpu_to_node(i) == node ) +@@ -773,6 +962,8 @@ static struct notifier_block cpu_smpboot_nfb = { + + void __init smp_prepare_cpus(unsigned int max_cpus) + { ++ int rc; ++ + register_cpu_notifier(&cpu_smpboot_nfb); + + mtrr_aps_sync_begin(); +@@ -786,6 +977,11 @@ void __init smp_prepare_cpus(unsigned int max_cpus) + + stack_base[0] = stack_start; + ++ rc = setup_cpu_root_pgt(0); ++ if ( rc ) ++ panic("Error %d setting up PV root page table\n", rc); ++ get_cpu_info()->pv_cr3 = __pa(per_cpu(root_pgt, 0)); ++ + set_nr_sockets(); + + socket_cpumask = xzalloc_array(cpumask_t *, nr_sockets); +@@ -850,6 +1046,8 @@ void __init smp_prepare_boot_cpu(void) + { + cpumask_set_cpu(smp_processor_id(), &cpu_online_map); + cpumask_set_cpu(smp_processor_id(), &cpu_present_map); ++ ++ get_cpu_info()->xen_cr3 = 0; + } + + static void +diff --git a/xen/arch/x86/x86_64/asm-offsets.c b/xen/arch/x86/x86_64/asm-offsets.c +index a3ae7a475f..4f2ba28520 100644 +--- a/xen/arch/x86/x86_64/asm-offsets.c ++++ b/xen/arch/x86/x86_64/asm-offsets.c +@@ -137,6 +137,8 @@ void __dummy__(void) + OFFSET(CPUINFO_processor_id, struct cpu_info, processor_id); + OFFSET(CPUINFO_current_vcpu, struct cpu_info, current_vcpu); + OFFSET(CPUINFO_cr4, struct cpu_info, cr4); ++ OFFSET(CPUINFO_xen_cr3, struct cpu_info, xen_cr3); ++ OFFSET(CPUINFO_pv_cr3, struct cpu_info, pv_cr3); + DEFINE(CPUINFO_sizeof, sizeof(struct cpu_info)); + BLANK(); + +diff --git a/xen/arch/x86/x86_64/compat/entry.S b/xen/arch/x86/x86_64/compat/entry.S +index 7ee01597a3..f7e53fb3cb 100644 +--- a/xen/arch/x86/x86_64/compat/entry.S ++++ b/xen/arch/x86/x86_64/compat/entry.S +@@ -270,6 +270,17 @@ ENTRY(cstar_enter) + pushq $0 + movl $TRAP_syscall, 4(%rsp) + SAVE_ALL ++ ++ GET_STACK_END(bx) ++ mov STACK_CPUINFO_FIELD(xen_cr3)(%rbx), %rcx ++ neg %rcx ++ jz .Lcstar_cr3_okay ++ mov %rcx, STACK_CPUINFO_FIELD(xen_cr3)(%rbx) ++ neg %rcx ++ write_cr3 rcx, rdi, rsi ++ movq $0, STACK_CPUINFO_FIELD(xen_cr3)(%rbx) ++.Lcstar_cr3_okay: ++ + GET_CURRENT(bx) + movq VCPU_domain(%rbx),%rcx + cmpb $0,DOMAIN_is_32bit_pv(%rcx) +diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S +index cebb1e4f4f..d63e734bb3 100644 +--- a/xen/arch/x86/x86_64/entry.S ++++ b/xen/arch/x86/x86_64/entry.S +@@ -36,6 +36,32 @@ ENTRY(switch_to_kernel) + /* %rbx: struct vcpu, interrupts disabled */ + restore_all_guest: + ASSERT_INTERRUPTS_DISABLED ++ ++ /* Copy guest mappings and switch to per-CPU root page table. */ ++ mov %cr3, %r9 ++ GET_STACK_END(dx) ++ mov STACK_CPUINFO_FIELD(pv_cr3)(%rdx), %rdi ++ movabs $PADDR_MASK & PAGE_MASK, %rsi ++ movabs $DIRECTMAP_VIRT_START, %rcx ++ mov %rdi, %rax ++ and %rsi, %rdi ++ and %r9, %rsi ++ add %rcx, %rdi ++ add %rcx, %rsi ++ mov $ROOT_PAGETABLE_FIRST_XEN_SLOT, %ecx ++ mov root_table_offset(SH_LINEAR_PT_VIRT_START)*8(%rsi), %r8 ++ mov %r8, root_table_offset(SH_LINEAR_PT_VIRT_START)*8(%rdi) ++ rep movsq ++ mov $ROOT_PAGETABLE_ENTRIES - \ ++ ROOT_PAGETABLE_LAST_XEN_SLOT - 1, %ecx ++ sub $(ROOT_PAGETABLE_FIRST_XEN_SLOT - \ ++ ROOT_PAGETABLE_LAST_XEN_SLOT - 1) * 8, %rsi ++ sub $(ROOT_PAGETABLE_FIRST_XEN_SLOT - \ ++ ROOT_PAGETABLE_LAST_XEN_SLOT - 1) * 8, %rdi ++ rep movsq ++ mov %r9, STACK_CPUINFO_FIELD(xen_cr3)(%rdx) ++ write_cr3 rax, rdi, rsi ++ + RESTORE_ALL + testw $TRAP_syscall,4(%rsp) + jz iret_exit_to_guest +@@ -70,6 +96,22 @@ iret_exit_to_guest: + ALIGN + /* No special register assumptions. */ + restore_all_xen: ++ /* ++ * Check whether we need to switch to the per-CPU page tables, in ++ * case we return to late PV exit code (from an NMI or #MC). ++ */ ++ GET_STACK_END(ax) ++ mov STACK_CPUINFO_FIELD(xen_cr3)(%rax), %rdx ++ mov STACK_CPUINFO_FIELD(pv_cr3)(%rax), %rax ++ test %rdx, %rdx ++ /* ++ * Ideally the condition would be "nsz", but such doesn't exist, ++ * so "g" will have to do. ++ */ ++UNLIKELY_START(g, exit_cr3) ++ write_cr3 rax, rdi, rsi ++UNLIKELY_END(exit_cr3) ++ + RESTORE_ALL adj=8 + iretq + +@@ -99,7 +141,18 @@ ENTRY(lstar_enter) + pushq $0 + movl $TRAP_syscall, 4(%rsp) + SAVE_ALL +- GET_CURRENT(bx) ++ ++ GET_STACK_END(bx) ++ mov STACK_CPUINFO_FIELD(xen_cr3)(%rbx), %rcx ++ neg %rcx ++ jz .Llstar_cr3_okay ++ mov %rcx, STACK_CPUINFO_FIELD(xen_cr3)(%rbx) ++ neg %rcx ++ write_cr3 rcx, r11, r12 ++ movq $0, STACK_CPUINFO_FIELD(xen_cr3)(%rbx) ++.Llstar_cr3_okay: ++ ++ __GET_CURRENT(bx) + testb $TF_kernel_mode,VCPU_thread_flags(%rbx) + jz switch_to_kernel + +@@ -248,7 +301,18 @@ GLOBAL(sysenter_eflags_saved) + pushq $0 + movl $TRAP_syscall, 4(%rsp) + SAVE_ALL +- GET_CURRENT(bx) ++ ++ GET_STACK_END(bx) ++ mov STACK_CPUINFO_FIELD(xen_cr3)(%rbx), %rcx ++ neg %rcx ++ jz .Lsyse_cr3_okay ++ mov %rcx, STACK_CPUINFO_FIELD(xen_cr3)(%rbx) ++ neg %rcx ++ write_cr3 rcx, rdi, rsi ++ movq $0, STACK_CPUINFO_FIELD(xen_cr3)(%rbx) ++.Lsyse_cr3_okay: ++ ++ __GET_CURRENT(bx) + cmpb $0,VCPU_sysenter_disables_events(%rbx) + movq VCPU_sysenter_addr(%rbx),%rax + setne %cl +@@ -284,13 +348,23 @@ ENTRY(int80_direct_trap) + movl $0x80, 4(%rsp) + SAVE_ALL + ++ GET_STACK_END(bx) ++ mov STACK_CPUINFO_FIELD(xen_cr3)(%rbx), %rcx ++ neg %rcx ++ jz .Lint80_cr3_okay ++ mov %rcx, STACK_CPUINFO_FIELD(xen_cr3)(%rbx) ++ neg %rcx ++ write_cr3 rcx, rdi, rsi ++ movq $0, STACK_CPUINFO_FIELD(xen_cr3)(%rbx) ++.Lint80_cr3_okay: ++ + cmpb $0,untrusted_msi(%rip) + UNLIKELY_START(ne, msi_check) + movl $0x80,%edi + call check_for_unexpected_msi + UNLIKELY_END(msi_check) + +- GET_CURRENT(bx) ++ __GET_CURRENT(bx) + + /* Check that the callback is non-null. */ + leaq VCPU_int80_bounce(%rbx),%rdx +@@ -441,9 +515,27 @@ ENTRY(dom_crash_sync_extable) + + ENTRY(common_interrupt) + SAVE_ALL CLAC ++ ++ GET_STACK_END(14) ++ mov STACK_CPUINFO_FIELD(xen_cr3)(%r14), %rcx ++ mov %rcx, %r15 ++ neg %rcx ++ jz .Lintr_cr3_okay ++ jns .Lintr_cr3_load ++ mov %rcx, STACK_CPUINFO_FIELD(xen_cr3)(%r14) ++ neg %rcx ++.Lintr_cr3_load: ++ write_cr3 rcx, rdi, rsi ++ xor %ecx, %ecx ++ mov %rcx, STACK_CPUINFO_FIELD(xen_cr3)(%r14) ++ testb $3, UREGS_cs(%rsp) ++ cmovnz %rcx, %r15 ++.Lintr_cr3_okay: ++ + CR4_PV32_RESTORE + movq %rsp,%rdi + callq do_IRQ ++ mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14) + jmp ret_from_intr + + /* No special register assumptions. */ +@@ -461,6 +553,23 @@ ENTRY(page_fault) + /* No special register assumptions. */ + GLOBAL(handle_exception) + SAVE_ALL CLAC ++ ++ GET_STACK_END(14) ++ mov STACK_CPUINFO_FIELD(xen_cr3)(%r14), %rcx ++ mov %rcx, %r15 ++ neg %rcx ++ jz .Lxcpt_cr3_okay ++ jns .Lxcpt_cr3_load ++ mov %rcx, STACK_CPUINFO_FIELD(xen_cr3)(%r14) ++ neg %rcx ++.Lxcpt_cr3_load: ++ write_cr3 rcx, rdi, rsi ++ xor %ecx, %ecx ++ mov %rcx, STACK_CPUINFO_FIELD(xen_cr3)(%r14) ++ testb $3, UREGS_cs(%rsp) ++ cmovnz %rcx, %r15 ++.Lxcpt_cr3_okay: ++ + handle_exception_saved: + GET_CURRENT(bx) + testb $X86_EFLAGS_IF>>8,UREGS_eflags+1(%rsp) +@@ -525,6 +634,7 @@ handle_exception_saved: + leaq exception_table(%rip),%rdx + PERFC_INCR(exceptions, %rax, %rbx) + callq *(%rdx,%rax,8) ++ mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14) + testb $3,UREGS_cs(%rsp) + jz restore_all_xen + leaq VCPU_trap_bounce(%rbx),%rdx +@@ -557,6 +667,7 @@ exception_with_ints_disabled: + rep; movsq # make room for ec/ev + 1: movq UREGS_error_code(%rsp),%rax # ec/ev + movq %rax,UREGS_kernel_sizeof(%rsp) ++ mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14) + jmp restore_all_xen # return to fixup code + + /* No special register assumptions. */ +@@ -634,6 +745,17 @@ ENTRY(double_fault) + movl $TRAP_double_fault,4(%rsp) + /* Set AC to reduce chance of further SMAP faults */ + SAVE_ALL STAC ++ ++ GET_STACK_END(bx) ++ mov STACK_CPUINFO_FIELD(xen_cr3)(%rbx), %rbx ++ test %rbx, %rbx ++ jz .Ldblf_cr3_okay ++ jns .Ldblf_cr3_load ++ neg %rbx ++.Ldblf_cr3_load: ++ write_cr3 rbx, rdi, rsi ++.Ldblf_cr3_okay: ++ + movq %rsp,%rdi + call do_double_fault + BUG /* do_double_fault() shouldn't return. */ +@@ -652,10 +774,28 @@ ENTRY(nmi) + movl $TRAP_nmi,4(%rsp) + handle_ist_exception: + SAVE_ALL CLAC ++ ++ GET_STACK_END(14) ++ mov STACK_CPUINFO_FIELD(xen_cr3)(%r14), %rcx ++ mov %rcx, %r15 ++ neg %rcx ++ jz .List_cr3_okay ++ jns .List_cr3_load ++ mov %rcx, STACK_CPUINFO_FIELD(xen_cr3)(%r14) ++ neg %rcx ++.List_cr3_load: ++ write_cr3 rcx, rdi, rsi ++ movq $0, STACK_CPUINFO_FIELD(xen_cr3)(%r14) ++.List_cr3_okay: ++ + CR4_PV32_RESTORE + testb $3,UREGS_cs(%rsp) + jz 1f +- /* Interrupted guest context. Copy the context to stack bottom. */ ++ /* ++ * Interrupted guest context. Clear the restore value for xen_cr3 ++ * and copy the context to stack bottom. ++ */ ++ xor %r15, %r15 + GET_CPUINFO_FIELD(guest_cpu_user_regs,di) + movq %rsp,%rsi + movl $UREGS_kernel_sizeof/8,%ecx +@@ -665,6 +805,7 @@ handle_ist_exception: + movzbl UREGS_entry_vector(%rsp),%eax + leaq exception_table(%rip),%rdx + callq *(%rdx,%rax,8) ++ mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14) + cmpb $TRAP_nmi,UREGS_entry_vector(%rsp) + jne ret_from_intr + +diff --git a/xen/include/asm-x86/asm_defns.h b/xen/include/asm-x86/asm_defns.h +index 6e5c079ad8..6cfdaa1aa0 100644 +--- a/xen/include/asm-x86/asm_defns.h ++++ b/xen/include/asm-x86/asm_defns.h +@@ -93,9 +93,30 @@ void ret_from_intr(void); + UNLIKELY_DONE(mp, tag); \ + __UNLIKELY_END(tag) + ++ .equ .Lrax, 0 ++ .equ .Lrcx, 1 ++ .equ .Lrdx, 2 ++ .equ .Lrbx, 3 ++ .equ .Lrsp, 4 ++ .equ .Lrbp, 5 ++ .equ .Lrsi, 6 ++ .equ .Lrdi, 7 ++ .equ .Lr8, 8 ++ .equ .Lr9, 9 ++ .equ .Lr10, 10 ++ .equ .Lr11, 11 ++ .equ .Lr12, 12 ++ .equ .Lr13, 13 ++ .equ .Lr14, 14 ++ .equ .Lr15, 15 ++ + #define STACK_CPUINFO_FIELD(field) (1 - CPUINFO_sizeof + CPUINFO_##field) + #define GET_STACK_END(reg) \ ++ .if .Lr##reg > 8; \ ++ movq $STACK_SIZE-1, %r##reg; \ ++ .else; \ + movl $STACK_SIZE-1, %e##reg; \ ++ .endif; \ + orq %rsp, %r##reg + + #define GET_CPUINFO_FIELD(field, reg) \ +@@ -177,6 +198,15 @@ void ret_from_intr(void); + #define ASM_STAC ASM_AC(STAC) + #define ASM_CLAC ASM_AC(CLAC) + ++.macro write_cr3 val:req, tmp1:req, tmp2:req ++ mov %cr4, %\tmp1 ++ mov %\tmp1, %\tmp2 ++ and $~X86_CR4_PGE, %\tmp1 ++ mov %\tmp1, %cr4 ++ mov %\val, %cr3 ++ mov %\tmp2, %cr4 ++.endm ++ + #define CR4_PV32_RESTORE \ + 667: ASM_NOP5; \ + .pushsection .altinstr_replacement, "ax"; \ +diff --git a/xen/include/asm-x86/current.h b/xen/include/asm-x86/current.h +index e6587e684c..397fa4c38f 100644 +--- a/xen/include/asm-x86/current.h ++++ b/xen/include/asm-x86/current.h +@@ -42,6 +42,18 @@ struct cpu_info { + struct vcpu *current_vcpu; + unsigned long per_cpu_offset; + unsigned long cr4; ++ /* ++ * Of the two following fields the latter is being set to the CR3 value ++ * to be used on the given pCPU for loading whenever 64-bit PV guest ++ * context is being entered. The value never changes once set. ++ * The former is the value to restore when re-entering Xen, if any. IOW ++ * its value being zero means there's nothing to restore. However, its ++ * value can also be negative, indicating to the exit-to-Xen code that ++ * restoring is not necessary, but allowing any nested entry code paths ++ * to still know the value to put back into CR3. ++ */ ++ unsigned long xen_cr3; ++ unsigned long pv_cr3; + /* get_stack_bottom() must be 16-byte aligned */ + }; + +diff --git a/xen/include/asm-x86/processor.h b/xen/include/asm-x86/processor.h +index ccd406a3fe..9906f38f2d 100644 +--- a/xen/include/asm-x86/processor.h ++++ b/xen/include/asm-x86/processor.h +@@ -517,6 +517,7 @@ extern idt_entry_t idt_table[]; + extern idt_entry_t *idt_tables[]; + + DECLARE_PER_CPU(struct tss_struct, init_tss); ++DECLARE_PER_CPU(root_pgentry_t *, root_pgt); + + extern void init_int80_direct_trap(struct vcpu *v); + +diff --git a/xen/include/asm-x86/x86_64/page.h b/xen/include/asm-x86/x86_64/page.h +index 589f22552e..afc77c3237 100644 +--- a/xen/include/asm-x86/x86_64/page.h ++++ b/xen/include/asm-x86/x86_64/page.h +@@ -25,8 +25,8 @@ + /* These are architectural limits. Current CPUs support only 40-bit phys. */ + #define PADDR_BITS 52 + #define VADDR_BITS 48 +-#define PADDR_MASK ((1UL << PADDR_BITS)-1) +-#define VADDR_MASK ((1UL << VADDR_BITS)-1) ++#define PADDR_MASK ((_AC(1,UL) << PADDR_BITS) - 1) ++#define VADDR_MASK ((_AC(1,UL) << VADDR_BITS) - 1) + + #define is_canonical_address(x) (((long)(x) >> 47) == ((long)(x) >> 63)) + +@@ -117,6 +117,7 @@ typedef l4_pgentry_t root_pgentry_t; + : (((_s) < ROOT_PAGETABLE_FIRST_XEN_SLOT) || \ + ((_s) > ROOT_PAGETABLE_LAST_XEN_SLOT))) + ++#define root_table_offset l4_table_offset + #define root_get_pfn l4e_get_pfn + #define root_get_flags l4e_get_flags + #define root_get_intpte l4e_get_intpte +-- +2.15.1 + Property changes on: head/emulators/xen-kernel47/files/0001-x86-Meltdown-band-aid-against-malicious-64-bit-PV-gu.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/0001-x86-compat-fix-compilation-errors-with-clang-6.patch =================================================================== --- head/emulators/xen-kernel47/files/0001-x86-compat-fix-compilation-errors-with-clang-6.patch (nonexistent) +++ head/emulators/xen-kernel47/files/0001-x86-compat-fix-compilation-errors-with-clang-6.patch (revision 475254) @@ -0,0 +1,76 @@ +From 58e028648e3bc831b1b60a39b7f1661538fa6a34 Mon Sep 17 00:00:00 2001 +From: Roger Pau Monne +Date: Tue, 23 Jan 2018 16:05:17 +0000 +Subject: [PATCH] x86/compat: fix compilation errors with clang 6 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The following errors are generated when compiling Xen with clang 6: + +In file included from x86_64/asm-offsets.c:9: +In file included from /root/src/xen/xen/include/xen/sched.h:8: +In file included from /root/src/xen/xen/include/xen/shared.h:6: +In file included from /root/src/xen/xen/include/compat/arch-x86/../xen.h:9: +/root/src/xen/xen/include/compat/arch-x86/xen.h:10:10: error: the current #pragma pack aligment + value is modified in the included file [-Werror,-Wpragma-pack] +#include "xen-x86_32.h" + ^ +/root/src/xen/xen/include/compat/arch-x86/xen-x86_32.h:40:9: note: previous '#pragma pack' + directive that modifies alignment is here +#pragma pack() + ^ +In file included from x86_64/asm-offsets.c:9: +In file included from /root/src/xen/xen/include/xen/sched.h:8: +In file included from /root/src/xen/xen/include/xen/shared.h:6: +/root/src/xen/xen/include/compat/arch-x86/../xen.h:9:10: error: the current #pragma pack aligment + value is modified in the included file [-Werror,-Wpragma-pack] +#include "arch-x86/xen.h" + ^ +/root/src/xen/xen/include/compat/arch-x86/xen.h:71:9: note: previous '#pragma pack' directive that + modifies alignment is here +#pragma pack() + ^ +2 errors generated. + +Fix this by using pragma push/pop in order to store the current pragma +value in the compiler stack and later restoring it when using clang. + +Signed-off-by: Roger Pau Monné +--- +Cc: Andrew Cooper +Cc: George Dunlap +Cc: Ian Jackson +Cc: Jan Beulich +Cc: Konrad Rzeszutek Wilk +Cc: Stefano Stabellini +Cc: Tim Deegan +Cc: Wei Liu +--- +Changes since v1: + - Only use push/pop with clang. +--- + xen/include/Makefile | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/xen/include/Makefile b/xen/include/Makefile +index 268bc9d6ba..eeae942903 100644 +--- a/xen/include/Makefile ++++ b/xen/include/Makefile +@@ -34,8 +34,13 @@ cppflags-y := -include public/xen-compat.h + cppflags-$(CONFIG_X86) += -m32 + + # 8-byte types are 4-byte aligned on x86_32 ... ++ifeq ($(clang),y) ++prefix-$(CONFIG_X86) := \#pragma pack(push, 4) ++suffix-$(CONFIG_X86) := \#pragma pack(pop) ++else + prefix-$(CONFIG_X86) := \#pragma pack(4) + suffix-$(CONFIG_X86) := \#pragma pack() ++endif + + endif + +-- +2.15.1 + Property changes on: head/emulators/xen-kernel47/files/0001-x86-compat-fix-compilation-errors-with-clang-6.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/0002-p2m-Check-return-value-of-p2m_set_entry-when-decreas.patch =================================================================== --- head/emulators/xen-kernel47/files/0002-p2m-Check-return-value-of-p2m_set_entry-when-decreas.patch (nonexistent) +++ head/emulators/xen-kernel47/files/0002-p2m-Check-return-value-of-p2m_set_entry-when-decreas.patch (revision 475254) @@ -0,0 +1,109 @@ +From 01feeda5363dd8d2fea8395c2c435203751c8ba5 Mon Sep 17 00:00:00 2001 +From: George Dunlap +Date: Fri, 10 Nov 2017 16:53:55 +0000 +Subject: [PATCH 2/2] p2m: Check return value of p2m_set_entry() when + decreasing reservation + +If the entire range specified to p2m_pod_decrease_reservation() is marked +populate-on-demand, then it will make a single p2m_set_entry() call, +reducing its PoD entry count. + +Unfortunately, in the right circumstances, this p2m_set_entry() call +may fail. It that case, repeated calls to decrease_reservation() may +cause p2m->pod.entry_count to fall below zero, potentially tripping +over BUG_ON()s to the contrary. + +Instead, check to see if the entry succeeded, and return false if not. +The caller will then call guest_remove_page() on the gfns, which will +return -EINVAL upon finding no valid memory there to return. + +Unfortunately if the order > 0, the entry may have partially changed. +A domain_crash() is probably the safest thing in that case. + +Other p2m_set_entry() calls in the same function should be fine, +because they are writing the entry at its current order. Nonetheless, +check the return value and crash if our assumption turns otu to be +wrong. + +This is part of XSA-247. + +Reported-by: George Dunlap +Signed-off-by: George Dunlap +Reviewed-by: Jan Beulich +--- +v2: Crash the domain if we're not sure it's safe (or if we think it +can't happen) +--- + xen/arch/x86/mm/p2m-pod.c | 42 +++++++++++++++++++++++++++++++++--------- + 1 file changed, 33 insertions(+), 9 deletions(-) + +diff --git a/xen/arch/x86/mm/p2m-pod.c b/xen/arch/x86/mm/p2m-pod.c +index 5ec8a37949..91d309647e 100644 +--- a/xen/arch/x86/mm/p2m-pod.c ++++ b/xen/arch/x86/mm/p2m-pod.c +@@ -557,11 +557,23 @@ p2m_pod_decrease_reservation(struct domain *d, + + if ( !nonpod ) + { +- /* All PoD: Mark the whole region invalid and tell caller +- * we're done. */ +- p2m_set_entry(p2m, gpfn, _mfn(INVALID_MFN), order, p2m_invalid, +- p2m->default_access); +- p2m->pod.entry_count-=(1<default_access) ) ++ { ++ /* ++ * If this fails, we can't tell how much of the range was changed. ++ * Best to crash the domain unless we're sure a partial change is ++ * impossible. ++ */ ++ if ( order != 0 ) ++ domain_crash(d); ++ goto out_unlock; ++ } ++ p2m->pod.entry_count -= 1UL << order; + BUG_ON(p2m->pod.entry_count < 0); + ret = 1; + goto out_entry_check; +@@ -602,8 +614,14 @@ p2m_pod_decrease_reservation(struct domain *d, + n = 1UL << cur_order; + if ( t == p2m_populate_on_demand ) + { +- p2m_set_entry(p2m, gpfn + i, _mfn(INVALID_MFN), cur_order, +- p2m_invalid, p2m->default_access); ++ /* This shouldn't be able to fail */ ++ if ( p2m_set_entry(p2m, gpfn + i, _mfn(INVALID_MFN), cur_order, ++ p2m_invalid, p2m->default_access) ) ++ { ++ ASSERT_UNREACHABLE(); ++ domain_crash(d); ++ goto out_unlock; ++ } + p2m->pod.entry_count -= n; + BUG_ON(p2m->pod.entry_count < 0); + pod -= n; +@@ -624,8 +642,14 @@ p2m_pod_decrease_reservation(struct domain *d, + + page = mfn_to_page(mfn); + +- p2m_set_entry(p2m, gpfn + i, _mfn(INVALID_MFN), cur_order, +- p2m_invalid, p2m->default_access); ++ /* This shouldn't be able to fail */ ++ if ( p2m_set_entry(p2m, gpfn + i, _mfn(INVALID_MFN), cur_order, ++ p2m_invalid, p2m->default_access) ) ++ { ++ ASSERT_UNREACHABLE(); ++ domain_crash(d); ++ goto out_unlock; ++ } + p2m_tlb_flush_sync(p2m); + for ( j = 0; j < n; ++j ) + set_gpfn_from_mfn(mfn_x(mfn), INVALID_M2P_ENTRY); +-- +2.15.0 + Property changes on: head/emulators/xen-kernel47/files/0002-p2m-Check-return-value-of-p2m_set_entry-when-decreas.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/0002-x86-allow-Meltdown-band-aid-to-be-disabled.patch =================================================================== --- head/emulators/xen-kernel47/files/0002-x86-allow-Meltdown-band-aid-to-be-disabled.patch (nonexistent) +++ head/emulators/xen-kernel47/files/0002-x86-allow-Meltdown-band-aid-to-be-disabled.patch (revision 475254) @@ -0,0 +1,163 @@ +From e19d0af4ee2ae9e42a85db639fd6848e72f5658b Mon Sep 17 00:00:00 2001 +From: Jan Beulich +Date: Wed, 17 Jan 2018 17:24:59 +0100 +Subject: [PATCH 2/2] x86: allow Meltdown band-aid to be disabled + +First of all we don't need it on AMD systems. Additionally allow its use +to be controlled by command line option. For best backportability, this +intentionally doesn't use alternative instruction patching to achieve +the intended effect - while we likely want it, this will be later +follow-up. + +Signed-off-by: Jan Beulich +Reviewed-by: Andrew Cooper +master commit: e871e80c38547d9faefc6604532ba3e985e65873 +master date: 2018-01-16 17:50:59 +0100 +--- + docs/misc/xen-command-line.markdown | 12 ++++++++++++ + xen/arch/x86/domain.c | 7 +++++-- + xen/arch/x86/mm.c | 2 +- + xen/arch/x86/smpboot.c | 17 ++++++++++++++--- + xen/arch/x86/x86_64/entry.S | 2 ++ + 5 files changed, 34 insertions(+), 6 deletions(-) + +diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown +index 2dacb5d073..aecf9fd49d 100644 +--- a/docs/misc/xen-command-line.markdown ++++ b/docs/misc/xen-command-line.markdown +@@ -1621,6 +1621,18 @@ In the case that x2apic is in use, this option switches between physical and + clustered mode. The default, given no hint from the **FADT**, is cluster + mode. + ++### xpti ++> `= ` ++ ++> Default: `false` on AMD hardware ++> Default: `true` everywhere else ++ ++Override default selection of whether to isolate 64-bit PV guest page ++tables. ++ ++** WARNING: Not yet a complete isolation implementation, but better than ++nothing. ** ++ + ### xsave + > `= ` + +diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c +index 3cf18f95b7..a1bda5e12d 100644 +--- a/xen/arch/x86/domain.c ++++ b/xen/arch/x86/domain.c +@@ -1945,12 +1945,15 @@ static void paravirt_ctxt_switch_from(struct vcpu *v) + + static void paravirt_ctxt_switch_to(struct vcpu *v) + { ++ root_pgentry_t *root_pgt = this_cpu(root_pgt); + unsigned long cr4; + + switch_kernel_stack(v); + +- this_cpu(root_pgt)[root_table_offset(PERDOMAIN_VIRT_START)] = +- l4e_from_page(v->domain->arch.perdomain_l3_pg, __PAGE_HYPERVISOR_RW); ++ if ( root_pgt ) ++ root_pgt[root_table_offset(PERDOMAIN_VIRT_START)] = ++ l4e_from_page(v->domain->arch.perdomain_l3_pg, ++ __PAGE_HYPERVISOR_RW); + + cr4 = pv_guest_cr4_to_real_cr4(v); + if ( unlikely(cr4 != read_cr4()) ) +diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c +index c9e4003989..07015e3160 100644 +--- a/xen/arch/x86/mm.c ++++ b/xen/arch/x86/mm.c +@@ -4007,7 +4007,7 @@ long do_mmu_update( + rc = mod_l4_entry(va, l4e_from_intpte(req.val), mfn, + cmd == MMU_PT_UPDATE_PRESERVE_AD, v); + if ( !rc ) +- sync_guest = 1; ++ sync_guest = !!this_cpu(root_pgt); + break; + case PGT_writable_page: + perfc_incr(writable_mmu_updates); +diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c +index eaeec5acf0..f2f47f612a 100644 +--- a/xen/arch/x86/smpboot.c ++++ b/xen/arch/x86/smpboot.c +@@ -320,7 +320,7 @@ void start_secondary(void *unused) + spin_debug_disable(); + + get_cpu_info()->xen_cr3 = 0; +- get_cpu_info()->pv_cr3 = __pa(this_cpu(root_pgt)); ++ get_cpu_info()->pv_cr3 = this_cpu(root_pgt) ? __pa(this_cpu(root_pgt)) : 0; + + load_system_tables(); + +@@ -729,14 +729,20 @@ static int clone_mapping(const void *ptr, root_pgentry_t *rpt) + return 0; + } + ++static __read_mostly int8_t opt_xpti = -1; ++boolean_param("xpti", opt_xpti); + DEFINE_PER_CPU(root_pgentry_t *, root_pgt); + + static int setup_cpu_root_pgt(unsigned int cpu) + { +- root_pgentry_t *rpt = alloc_xen_pagetable(); ++ root_pgentry_t *rpt; + unsigned int off; + int rc; + ++ if ( !opt_xpti ) ++ return 0; ++ ++ rpt = alloc_xen_pagetable(); + if ( !rpt ) + return -ENOMEM; + +@@ -977,10 +983,14 @@ void __init smp_prepare_cpus(unsigned int max_cpus) + + stack_base[0] = stack_start; + ++ if ( opt_xpti < 0 ) ++ opt_xpti = boot_cpu_data.x86_vendor != X86_VENDOR_AMD; ++ + rc = setup_cpu_root_pgt(0); + if ( rc ) + panic("Error %d setting up PV root page table\n", rc); +- get_cpu_info()->pv_cr3 = __pa(per_cpu(root_pgt, 0)); ++ if ( per_cpu(root_pgt, 0) ) ++ get_cpu_info()->pv_cr3 = __pa(per_cpu(root_pgt, 0)); + + set_nr_sockets(); + +@@ -1048,6 +1058,7 @@ void __init smp_prepare_boot_cpu(void) + cpumask_set_cpu(smp_processor_id(), &cpu_present_map); + + get_cpu_info()->xen_cr3 = 0; ++ get_cpu_info()->pv_cr3 = 0; + } + + static void +diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S +index d63e734bb3..2a569952e3 100644 +--- a/xen/arch/x86/x86_64/entry.S ++++ b/xen/arch/x86/x86_64/entry.S +@@ -45,6 +45,7 @@ restore_all_guest: + movabs $DIRECTMAP_VIRT_START, %rcx + mov %rdi, %rax + and %rsi, %rdi ++ jz .Lrag_keep_cr3 + and %r9, %rsi + add %rcx, %rdi + add %rcx, %rsi +@@ -61,6 +62,7 @@ restore_all_guest: + rep movsq + mov %r9, STACK_CPUINFO_FIELD(xen_cr3)(%rdx) + write_cr3 rax, rdi, rsi ++.Lrag_keep_cr3: + + RESTORE_ALL + testw $TRAP_syscall,4(%rsp) +-- +2.15.1 + Property changes on: head/emulators/xen-kernel47/files/0002-x86-allow-Meltdown-band-aid-to-be-disabled.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa246-4.7.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa246-4.7.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa246-4.7.patch (revision 475254) @@ -0,0 +1,74 @@ +From: Julien Grall +Subject: x86/pod: prevent infinite loop when shattering large pages + +When populating pages, the PoD may need to split large ones using +p2m_set_entry and request the caller to retry (see ept_get_entry for +instance). + +p2m_set_entry may fail to shatter if it is not possible to allocate +memory for the new page table. However, the error is not propagated +resulting to the callers to retry infinitely the PoD. + +Prevent the infinite loop by return false when it is not possible to +shatter the large mapping. + +This is XSA-246. + +Signed-off-by: Julien Grall +Signed-off-by: Jan Beulich +Reviewed-by: George Dunlap + +--- a/xen/arch/x86/mm/p2m-pod.c ++++ b/xen/arch/x86/mm/p2m-pod.c +@@ -1073,9 +1073,8 @@ p2m_pod_demand_populate(struct p2m_domai + * NOTE: In a fine-grained p2m locking scenario this operation + * may need to promote its locking from gfn->1g superpage + */ +- p2m_set_entry(p2m, gfn_aligned, _mfn(INVALID_MFN), PAGE_ORDER_2M, +- p2m_populate_on_demand, p2m->default_access); +- return 0; ++ return p2m_set_entry(p2m, gfn_aligned, _mfn(INVALID_MFN), PAGE_ORDER_2M, ++ p2m_populate_on_demand, p2m->default_access); + } + + /* Only reclaim if we're in actual need of more cache. */ +@@ -1106,8 +1105,12 @@ p2m_pod_demand_populate(struct p2m_domai + + gfn_aligned = (gfn >> order) << order; + +- p2m_set_entry(p2m, gfn_aligned, mfn, order, p2m_ram_rw, +- p2m->default_access); ++ if ( p2m_set_entry(p2m, gfn_aligned, mfn, order, p2m_ram_rw, ++ p2m->default_access) ) ++ { ++ p2m_pod_cache_add(p2m, p, order); ++ goto out_fail; ++ } + + for( i = 0; i < (1UL << order); i++ ) + { +@@ -1152,13 +1155,18 @@ remap_and_retry: + BUG_ON(order != PAGE_ORDER_2M); + pod_unlock(p2m); + +- /* Remap this 2-meg region in singleton chunks */ +- /* NOTE: In a p2m fine-grained lock scenario this might +- * need promoting the gfn lock from gfn->2M superpage */ ++ /* ++ * Remap this 2-meg region in singleton chunks. See the comment on the ++ * 1G page splitting path above for why a single call suffices. ++ * ++ * NOTE: In a p2m fine-grained lock scenario this might ++ * need promoting the gfn lock from gfn->2M superpage. ++ */ + gfn_aligned = (gfn>>order)<default_access); ++ if ( p2m_set_entry(p2m, gfn_aligned, _mfn(INVALID_MFN), PAGE_ORDER_4K, ++ p2m_populate_on_demand, p2m->default_access) ) ++ return -1; ++ + if ( tb_init_done ) + { + struct { Property changes on: head/emulators/xen-kernel47/files/xsa246-4.7.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa248-4.8.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa248-4.8.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa248-4.8.patch (revision 475254) @@ -0,0 +1,162 @@ +From: Jan Beulich +Subject: x86/mm: don't wrongly set page ownership + +PV domains can obtain mappings of any pages owned by the correct domain, +including ones that aren't actually assigned as "normal" RAM, but used +by Xen internally. At the moment such "internal" pages marked as owned +by a guest include pages used to track logdirty bits, as well as p2m +pages and the "unpaged pagetable" for HVM guests. Since the PV memory +management and shadow code conflict in their use of struct page_info +fields, and since shadow code is being used for log-dirty handling for +PV domains, pages coming from the shadow pool must, for PV domains, not +have the domain set as their owner. + +While the change could be done conditionally for just the PV case in +shadow code, do it unconditionally (and for consistency also for HAP), +just to be on the safe side. + +There's one special case though for shadow code: The page table used for +running a HVM guest in unpaged mode is subject to get_page() (in +set_shadow_status()) and hence must have its owner set. + +This is XSA-248. + +Signed-off-by: Jan Beulich +Reviewed-by: Tim Deegan +Reviewed-by: George Dunlap + +--- a/xen/arch/x86/mm/hap/hap.c ++++ b/xen/arch/x86/mm/hap/hap.c +@@ -283,8 +283,7 @@ static struct page_info *hap_alloc_p2m_p + { + d->arch.paging.hap.total_pages--; + d->arch.paging.hap.p2m_pages++; +- page_set_owner(pg, d); +- pg->count_info |= 1; ++ ASSERT(!page_get_owner(pg) && !(pg->count_info & PGC_count_mask)); + } + else if ( !d->arch.paging.p2m_alloc_failed ) + { +@@ -299,21 +298,23 @@ static struct page_info *hap_alloc_p2m_p + + static void hap_free_p2m_page(struct domain *d, struct page_info *pg) + { ++ struct domain *owner = page_get_owner(pg); ++ + /* This is called both from the p2m code (which never holds the + * paging lock) and the log-dirty code (which always does). */ + paging_lock_recursive(d); + +- ASSERT(page_get_owner(pg) == d); +- /* Should have just the one ref we gave it in alloc_p2m_page() */ +- if ( (pg->count_info & PGC_count_mask) != 1 ) { +- HAP_ERROR("Odd p2m page %p count c=%#lx t=%"PRtype_info"\n", +- pg, pg->count_info, pg->u.inuse.type_info); ++ /* Should still have no owner and count zero. */ ++ if ( owner || (pg->count_info & PGC_count_mask) ) ++ { ++ HAP_ERROR("d%d: Odd p2m page %"PRI_mfn" d=%d c=%lx t=%"PRtype_info"\n", ++ d->domain_id, mfn_x(page_to_mfn(pg)), ++ owner ? owner->domain_id : DOMID_INVALID, ++ pg->count_info, pg->u.inuse.type_info); + WARN(); ++ pg->count_info &= ~PGC_count_mask; ++ page_set_owner(pg, NULL); + } +- pg->count_info &= ~PGC_count_mask; +- /* Free should not decrement domain's total allocation, since +- * these pages were allocated without an owner. */ +- page_set_owner(pg, NULL); + d->arch.paging.hap.p2m_pages--; + d->arch.paging.hap.total_pages++; + hap_free(d, page_to_mfn(pg)); +--- a/xen/arch/x86/mm/shadow/common.c ++++ b/xen/arch/x86/mm/shadow/common.c +@@ -1573,32 +1573,29 @@ shadow_alloc_p2m_page(struct domain *d) + pg = mfn_to_page(shadow_alloc(d, SH_type_p2m_table, 0)); + d->arch.paging.shadow.p2m_pages++; + d->arch.paging.shadow.total_pages--; ++ ASSERT(!page_get_owner(pg) && !(pg->count_info & PGC_count_mask)); + + paging_unlock(d); + +- /* Unlike shadow pages, mark p2m pages as owned by the domain. +- * Marking the domain as the owner would normally allow the guest to +- * create mappings of these pages, but these p2m pages will never be +- * in the domain's guest-physical address space, and so that is not +- * believed to be a concern. */ +- page_set_owner(pg, d); +- pg->count_info |= 1; + return pg; + } + + static void + shadow_free_p2m_page(struct domain *d, struct page_info *pg) + { +- ASSERT(page_get_owner(pg) == d); +- /* Should have just the one ref we gave it in alloc_p2m_page() */ +- if ( (pg->count_info & PGC_count_mask) != 1 ) ++ struct domain *owner = page_get_owner(pg); ++ ++ /* Should still have no owner and count zero. */ ++ if ( owner || (pg->count_info & PGC_count_mask) ) + { +- SHADOW_ERROR("Odd p2m page count c=%#lx t=%"PRtype_info"\n", ++ SHADOW_ERROR("d%d: Odd p2m page %"PRI_mfn" d=%d c=%lx t=%"PRtype_info"\n", ++ d->domain_id, mfn_x(page_to_mfn(pg)), ++ owner ? owner->domain_id : DOMID_INVALID, + pg->count_info, pg->u.inuse.type_info); ++ pg->count_info &= ~PGC_count_mask; ++ page_set_owner(pg, NULL); + } +- pg->count_info &= ~PGC_count_mask; + pg->u.sh.type = SH_type_p2m_table; /* p2m code reuses type-info */ +- page_set_owner(pg, NULL); + + /* This is called both from the p2m code (which never holds the + * paging lock) and the log-dirty code (which always does). */ +@@ -3216,7 +3213,9 @@ int shadow_enable(struct domain *d, u32 + | _PAGE_PRESENT | _PAGE_RW | _PAGE_USER + | _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_PSE); + unmap_domain_page(e); ++ pg->count_info = 1; + pg->u.inuse.type_info = PGT_l2_page_table | 1 | PGT_validated; ++ page_set_owner(pg, d); + } + + paging_lock(d); +@@ -3254,7 +3253,11 @@ int shadow_enable(struct domain *d, u32 + if ( rv != 0 && !pagetable_is_null(p2m_get_pagetable(p2m)) ) + p2m_teardown(p2m); + if ( rv != 0 && pg != NULL ) ++ { ++ pg->count_info &= ~PGC_count_mask; ++ page_set_owner(pg, NULL); + shadow_free_p2m_page(d, pg); ++ } + domain_unpause(d); + return rv; + } +@@ -3363,7 +3366,22 @@ out: + + /* Must be called outside the lock */ + if ( unpaged_pagetable ) ++ { ++ if ( page_get_owner(unpaged_pagetable) == d && ++ (unpaged_pagetable->count_info & PGC_count_mask) == 1 ) ++ { ++ unpaged_pagetable->count_info &= ~PGC_count_mask; ++ page_set_owner(unpaged_pagetable, NULL); ++ } ++ /* Complain here in cases where shadow_free_p2m_page() won't. */ ++ else if ( !page_get_owner(unpaged_pagetable) && ++ !(unpaged_pagetable->count_info & PGC_count_mask) ) ++ SHADOW_ERROR("d%d: Odd unpaged pt %"PRI_mfn" c=%lx t=%"PRtype_info"\n", ++ d->domain_id, mfn_x(page_to_mfn(unpaged_pagetable)), ++ unpaged_pagetable->count_info, ++ unpaged_pagetable->u.inuse.type_info); + shadow_free_p2m_page(d, unpaged_pagetable); ++ } + } + + void shadow_final_teardown(struct domain *d) Property changes on: head/emulators/xen-kernel47/files/xsa248-4.8.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa249.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa249.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa249.patch (revision 475254) @@ -0,0 +1,42 @@ +From: Jan Beulich +Subject: x86/shadow: fix refcount overflow check + +Commit c385d27079 ("x86 shadow: for multi-page shadows, explicitly track +the first page") reduced the refcount width to 25, without adjusting the +overflow check. Eliminate the disconnect by using a manifest constant. + +Interestingly, up to commit 047782fa01 ("Out-of-sync L1 shadows: OOS +snapshot") the refcount was 27 bits wide, yet the check was already +using 26. + +This is XSA-249. + +Signed-off-by: Jan Beulich +Reviewed-by: George Dunlap +Reviewed-by: Tim Deegan +--- +v2: Simplify expression back to the style it was. + +--- a/xen/arch/x86/mm/shadow/private.h ++++ b/xen/arch/x86/mm/shadow/private.h +@@ -529,7 +529,7 @@ static inline int sh_get_ref(struct doma + x = sp->u.sh.count; + nx = x + 1; + +- if ( unlikely(nx >= 1U<<26) ) ++ if ( unlikely(nx >= (1U << PAGE_SH_REFCOUNT_WIDTH)) ) + { + SHADOW_PRINTK("shadow ref overflow, gmfn=%lx smfn=%lx\n", + __backpointer(sp), mfn_x(smfn)); +--- a/xen/include/asm-x86/mm.h ++++ b/xen/include/asm-x86/mm.h +@@ -82,7 +82,8 @@ struct page_info + unsigned long type:5; /* What kind of shadow is this? */ + unsigned long pinned:1; /* Is the shadow pinned? */ + unsigned long head:1; /* Is this the first page of the shadow? */ +- unsigned long count:25; /* Reference count */ ++#define PAGE_SH_REFCOUNT_WIDTH 25 ++ unsigned long count:PAGE_SH_REFCOUNT_WIDTH; /* Reference count */ + } sh; + + /* Page is on a free list: ((count_info & PGC_count_mask) == 0). */ Property changes on: head/emulators/xen-kernel47/files/xsa249.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa250.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa250.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa250.patch (revision 475254) @@ -0,0 +1,67 @@ +From: Jan Beulich +Subject: x86/shadow: fix ref-counting error handling + +The old-Linux handling in shadow_set_l4e() mistakenly ORed together the +results of sh_get_ref() and sh_pin(). As the latter failing is not a +correctness problem, simply ignore its return value. + +In sh_set_toplevel_shadow() a failing sh_get_ref() must not be +accompanied by installing the entry, despite the domain being crashed. + +This is XSA-250. + +Signed-off-by: Jan Beulich +Reviewed-by: Tim Deegan + +--- a/xen/arch/x86/mm/shadow/multi.c ++++ b/xen/arch/x86/mm/shadow/multi.c +@@ -923,7 +923,7 @@ static int shadow_set_l4e(struct domain + shadow_l4e_t new_sl4e, + mfn_t sl4mfn) + { +- int flags = 0, ok; ++ int flags = 0; + shadow_l4e_t old_sl4e; + paddr_t paddr; + ASSERT(sl4e != NULL); +@@ -938,15 +938,16 @@ static int shadow_set_l4e(struct domain + { + /* About to install a new reference */ + mfn_t sl3mfn = shadow_l4e_get_mfn(new_sl4e); +- ok = sh_get_ref(d, sl3mfn, paddr); +- /* Are we pinning l3 shadows to handle wierd linux behaviour? */ +- if ( sh_type_is_pinnable(d, SH_type_l3_64_shadow) ) +- ok |= sh_pin(d, sl3mfn); +- if ( !ok ) ++ ++ if ( !sh_get_ref(d, sl3mfn, paddr) ) + { + domain_crash(d); + return SHADOW_SET_ERROR; + } ++ ++ /* Are we pinning l3 shadows to handle weird Linux behaviour? */ ++ if ( sh_type_is_pinnable(d, SH_type_l3_64_shadow) ) ++ sh_pin(d, sl3mfn); + } + + /* Write the new entry */ +@@ -3965,14 +3966,15 @@ sh_set_toplevel_shadow(struct vcpu *v, + + /* Take a ref to this page: it will be released in sh_detach_old_tables() + * or the next call to set_toplevel_shadow() */ +- if ( !sh_get_ref(d, smfn, 0) ) ++ if ( sh_get_ref(d, smfn, 0) ) ++ new_entry = pagetable_from_mfn(smfn); ++ else + { + SHADOW_ERROR("can't install %#lx as toplevel shadow\n", mfn_x(smfn)); + domain_crash(d); ++ new_entry = pagetable_null(); + } + +- new_entry = pagetable_from_mfn(smfn); +- + install_new_entry: + /* Done. Install it */ + SHADOW_PRINTK("%u/%u [%u] gmfn %#"PRI_mfn" smfn %#"PRI_mfn"\n", Property changes on: head/emulators/xen-kernel47/files/xsa250.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa251-4.8.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa251-4.8.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa251-4.8.patch (revision 475254) @@ -0,0 +1,21 @@ +From: Jan Beulich +Subject: x86/paging: don't unconditionally BUG() on finding SHARED_M2P_ENTRY + +PV guests can fully control the values written into the P2M. + +This is XSA-251. + +Signed-off-by: Jan Beulich +Reviewed-by: Andrew Cooper + +--- a/xen/arch/x86/mm/paging.c ++++ b/xen/arch/x86/mm/paging.c +@@ -276,7 +276,7 @@ void paging_mark_pfn_dirty(struct domain + return; + + /* Shared MFNs should NEVER be marked dirty */ +- BUG_ON(SHARED_M2P(pfn)); ++ BUG_ON(paging_mode_translate(d) && SHARED_M2P(pfn)); + + /* + * Values with the MSB set denote MFNs that aren't really part of the Property changes on: head/emulators/xen-kernel47/files/xsa251-4.8.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa236-4.9.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa236-4.9.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa236-4.9.patch (revision 475254) @@ -0,0 +1,66 @@ +From: Jan Beulich +Subject: gnttab: fix pin count / page reference race + +Dropping page references before decrementing pin counts is a bad idea +if assumptions are being made that a non-zero pin count implies a valid +page. Fix the order of operations in gnttab_copy_release_buf(), but at +the same time also remove the assertion that was found to trigger: +map_grant_ref() also has the potential of causing a race here, and +changing the order of operations there would likely be quite a bit more +involved. + +This is XSA-236. + +Reported-by: Pawel Wieczorkiewicz +Signed-off-by: Jan Beulich +Reviewed-by: Andrew Cooper + +--- a/xen/common/grant_table.c ++++ b/xen/common/grant_table.c +@@ -2330,9 +2330,20 @@ __acquire_grant_for_copy( + td = page_get_owner_and_reference(*page); + /* + * act->pin being non-zero should guarantee the page to have a +- * non-zero refcount and hence a valid owner. ++ * non-zero refcount and hence a valid owner (matching the one on ++ * record), with one exception: If the owning domain is dying we ++ * had better not make implications from pin count (map_grant_ref() ++ * updates pin counts before obtaining page references, for ++ * example). + */ +- ASSERT(td); ++ if ( td != rd || rd->is_dying ) ++ { ++ if ( td ) ++ put_page(*page); ++ *page = NULL; ++ rc = GNTST_bad_domain; ++ goto unlock_out_clear; ++ } + } + + act->pin += readonly ? GNTPIN_hstr_inc : GNTPIN_hstw_inc; +@@ -2451,6 +2462,11 @@ static void gnttab_copy_release_buf(stru + unmap_domain_page(buf->virt); + buf->virt = NULL; + } ++ if ( buf->have_grant ) ++ { ++ __release_grant_for_copy(buf->domain, buf->ptr.u.ref, buf->read_only); ++ buf->have_grant = 0; ++ } + if ( buf->have_type ) + { + put_page_type(buf->page); +@@ -2461,11 +2477,6 @@ static void gnttab_copy_release_buf(stru + put_page(buf->page); + buf->page = NULL; + } +- if ( buf->have_grant ) +- { +- __release_grant_for_copy(buf->domain, buf->ptr.u.ref, buf->read_only); +- buf->have_grant = 0; +- } + } + + static int gnttab_copy_claim_buf(const struct gnttab_copy *op, Property changes on: head/emulators/xen-kernel47/files/xsa236-4.9.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/0001-x86-dont-allow-MSI-pIRQ-mapping-on-unowned-device.patch =================================================================== --- head/emulators/xen-kernel47/files/0001-x86-dont-allow-MSI-pIRQ-mapping-on-unowned-device.patch (nonexistent) +++ head/emulators/xen-kernel47/files/0001-x86-dont-allow-MSI-pIRQ-mapping-on-unowned-device.patch (revision 475254) @@ -0,0 +1,27 @@ +From: Jan Beulich +Subject: x86: don't allow MSI pIRQ mapping on unowned device + +MSI setup should be permitted only for existing devices owned by the +respective guest (the operation may still be carried out by the domain +controlling that guest). + +This is part of XSA-237. + +Reported-by: HW42 +Signed-off-by: Jan Beulich +Reviewed-by: Andrew Cooper + +--- a/xen/arch/x86/irq.c ++++ b/xen/arch/x86/irq.c +@@ -1964,7 +1964,10 @@ int map_domain_pirq( + if ( !cpu_has_apic ) + goto done; + +- pdev = pci_get_pdev(msi->seg, msi->bus, msi->devfn); ++ pdev = pci_get_pdev_by_domain(d, msi->seg, msi->bus, msi->devfn); ++ if ( !pdev ) ++ goto done; ++ + ret = pci_enable_msi(msi, &msi_desc); + if ( ret ) + { Property changes on: head/emulators/xen-kernel47/files/0001-x86-dont-allow-MSI-pIRQ-mapping-on-unowned-device.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/0001-x86-limit-linear-page-table-use-to-a-single-level.patch =================================================================== --- head/emulators/xen-kernel47/files/0001-x86-limit-linear-page-table-use-to-a-single-level.patch (nonexistent) +++ head/emulators/xen-kernel47/files/0001-x86-limit-linear-page-table-use-to-a-single-level.patch (revision 475254) @@ -0,0 +1,494 @@ +From ea7513a3e3f28cfec59dda6e128b6b4968685762 Mon Sep 17 00:00:00 2001 +From: Jan Beulich +Date: Thu, 28 Sep 2017 15:17:27 +0100 +Subject: [PATCH 1/2] x86: limit linear page table use to a single level + +That's the only way that they're meant to be used. Without such a +restriction arbitrarily long chains of same-level page tables can be +built, tearing down of which may then cause arbitrarily deep recursion, +causing a stack overflow. To facilitate this restriction, a counter is +being introduced to track both the number of same-level entries in a +page table as well as the number of uses of a page table in another +same-level one (counting into positive and negative direction +respectively, utilizing the fact that both counts can't be non-zero at +the same time). + +Note that the added accounting introduces a restriction on the number +of times a page can be used in other same-level page tables - more than +32k of such uses are no longer possible. + +Note also that some put_page_and_type[_preemptible]() calls are +replaced with open-coded equivalents. This seemed preferrable to +adding "parent_table" to the matrix of functions. + +Note further that cross-domain same-level page table references are no +longer permitted (they probably never should have been). + +This is XSA-240. + +Reported-by: Jann Horn +Signed-off-by: Jan Beulich +Signed-off-by: George Dunlap +--- + xen/arch/x86/domain.c | 1 + + xen/arch/x86/mm.c | 171 ++++++++++++++++++++++++++++++++++++++----- + xen/include/asm-x86/domain.h | 2 + + xen/include/asm-x86/mm.h | 25 +++++-- + 4 files changed, 175 insertions(+), 24 deletions(-) + +diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c +index 452748dd5b..44ed2ccd0a 100644 +--- a/xen/arch/x86/domain.c ++++ b/xen/arch/x86/domain.c +@@ -1237,6 +1237,7 @@ int arch_set_info_guest( + case -EINTR: + rc = -ERESTART; + case -ERESTART: ++ v->arch.old_guest_ptpg = NULL; + v->arch.old_guest_table = + pagetable_get_page(v->arch.guest_table); + v->arch.guest_table = pagetable_null(); +diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c +index e97ecccd93..e81a461b91 100644 +--- a/xen/arch/x86/mm.c ++++ b/xen/arch/x86/mm.c +@@ -732,6 +732,61 @@ static void put_data_page( + put_page(page); + } + ++static bool_t inc_linear_entries(struct page_info *pg) ++{ ++ typeof(pg->linear_pt_count) nc = read_atomic(&pg->linear_pt_count), oc; ++ ++ do { ++ /* ++ * The check below checks for the "linear use" count being non-zero ++ * as well as overflow. Signed integer overflow is undefined behavior ++ * according to the C spec. However, as long as linear_pt_count is ++ * smaller in size than 'int', the arithmetic operation of the ++ * increment below won't overflow; rather the result will be truncated ++ * when stored. Ensure that this is always true. ++ */ ++ BUILD_BUG_ON(sizeof(nc) >= sizeof(int)); ++ oc = nc++; ++ if ( nc <= 0 ) ++ return 0; ++ nc = cmpxchg(&pg->linear_pt_count, oc, nc); ++ } while ( oc != nc ); ++ ++ return 1; ++} ++ ++static void dec_linear_entries(struct page_info *pg) ++{ ++ typeof(pg->linear_pt_count) oc; ++ ++ oc = arch_fetch_and_add(&pg->linear_pt_count, -1); ++ ASSERT(oc > 0); ++} ++ ++static bool_t inc_linear_uses(struct page_info *pg) ++{ ++ typeof(pg->linear_pt_count) nc = read_atomic(&pg->linear_pt_count), oc; ++ ++ do { ++ /* See the respective comment in inc_linear_entries(). */ ++ BUILD_BUG_ON(sizeof(nc) >= sizeof(int)); ++ oc = nc--; ++ if ( nc >= 0 ) ++ return 0; ++ nc = cmpxchg(&pg->linear_pt_count, oc, nc); ++ } while ( oc != nc ); ++ ++ return 1; ++} ++ ++static void dec_linear_uses(struct page_info *pg) ++{ ++ typeof(pg->linear_pt_count) oc; ++ ++ oc = arch_fetch_and_add(&pg->linear_pt_count, 1); ++ ASSERT(oc < 0); ++} ++ + /* + * We allow root tables to map each other (a.k.a. linear page tables). It + * needs some special care with reference counts and access permissions: +@@ -761,15 +816,35 @@ get_##level##_linear_pagetable( \ + \ + if ( (pfn = level##e_get_pfn(pde)) != pde_pfn ) \ + { \ ++ struct page_info *ptpg = mfn_to_page(pde_pfn); \ ++ \ ++ /* Make sure the page table belongs to the correct domain. */ \ ++ if ( unlikely(page_get_owner(ptpg) != d) ) \ ++ return 0; \ ++ \ + /* Make sure the mapped frame belongs to the correct domain. */ \ + if ( unlikely(!get_page_from_pagenr(pfn, d)) ) \ + return 0; \ + \ + /* \ +- * Ensure that the mapped frame is an already-validated page table. \ ++ * Ensure that the mapped frame is an already-validated page table \ ++ * and is not itself having linear entries, as well as that the \ ++ * containing page table is not iself in use as a linear page table \ ++ * elsewhere. \ + * If so, atomically increment the count (checking for overflow). \ + */ \ + page = mfn_to_page(pfn); \ ++ if ( !inc_linear_entries(ptpg) ) \ ++ { \ ++ put_page(page); \ ++ return 0; \ ++ } \ ++ if ( !inc_linear_uses(page) ) \ ++ { \ ++ dec_linear_entries(ptpg); \ ++ put_page(page); \ ++ return 0; \ ++ } \ + y = page->u.inuse.type_info; \ + do { \ + x = y; \ +@@ -777,6 +852,8 @@ get_##level##_linear_pagetable( \ + unlikely((x & (PGT_type_mask|PGT_validated)) != \ + (PGT_##level##_page_table|PGT_validated)) ) \ + { \ ++ dec_linear_uses(page); \ ++ dec_linear_entries(ptpg); \ + put_page(page); \ + return 0; \ + } \ +@@ -1201,6 +1278,9 @@ get_page_from_l4e( + l3e_remove_flags((pl3e), _PAGE_USER|_PAGE_RW|_PAGE_ACCESSED); \ + } while ( 0 ) + ++static int _put_page_type(struct page_info *page, bool_t preemptible, ++ struct page_info *ptpg); ++ + void put_page_from_l1e(l1_pgentry_t l1e, struct domain *l1e_owner) + { + unsigned long pfn = l1e_get_pfn(l1e); +@@ -1270,17 +1350,22 @@ static int put_page_from_l2e(l2_pgentry_t l2e, unsigned long pfn) + if ( l2e_get_flags(l2e) & _PAGE_PSE ) + put_superpage(l2e_get_pfn(l2e)); + else +- put_page_and_type(l2e_get_page(l2e)); ++ { ++ struct page_info *pg = l2e_get_page(l2e); ++ int rc = _put_page_type(pg, 0, mfn_to_page(pfn)); ++ ++ ASSERT(!rc); ++ put_page(pg); ++ } + + return 0; + } + +-static int __put_page_type(struct page_info *, int preemptible); +- + static int put_page_from_l3e(l3_pgentry_t l3e, unsigned long pfn, + int partial, bool_t defer) + { + struct page_info *pg; ++ int rc; + + if ( !(l3e_get_flags(l3e) & _PAGE_PRESENT) || (l3e_get_pfn(l3e) == pfn) ) + return 1; +@@ -1303,21 +1388,28 @@ static int put_page_from_l3e(l3_pgentry_t l3e, unsigned long pfn, + if ( unlikely(partial > 0) ) + { + ASSERT(!defer); +- return __put_page_type(pg, 1); ++ return _put_page_type(pg, 1, mfn_to_page(pfn)); + } + + if ( defer ) + { ++ current->arch.old_guest_ptpg = mfn_to_page(pfn); + current->arch.old_guest_table = pg; + return 0; + } + +- return put_page_and_type_preemptible(pg); ++ rc = _put_page_type(pg, 1, mfn_to_page(pfn)); ++ if ( likely(!rc) ) ++ put_page(pg); ++ ++ return rc; + } + + static int put_page_from_l4e(l4_pgentry_t l4e, unsigned long pfn, + int partial, bool_t defer) + { ++ int rc = 1; ++ + if ( (l4e_get_flags(l4e) & _PAGE_PRESENT) && + (l4e_get_pfn(l4e) != pfn) ) + { +@@ -1326,18 +1418,22 @@ static int put_page_from_l4e(l4_pgentry_t l4e, unsigned long pfn, + if ( unlikely(partial > 0) ) + { + ASSERT(!defer); +- return __put_page_type(pg, 1); ++ return _put_page_type(pg, 1, mfn_to_page(pfn)); + } + + if ( defer ) + { ++ current->arch.old_guest_ptpg = mfn_to_page(pfn); + current->arch.old_guest_table = pg; + return 0; + } + +- return put_page_and_type_preemptible(pg); ++ rc = _put_page_type(pg, 1, mfn_to_page(pfn)); ++ if ( likely(!rc) ) ++ put_page(pg); + } +- return 1; ++ ++ return rc; + } + + static int alloc_l1_table(struct page_info *page) +@@ -1535,6 +1631,7 @@ static int alloc_l3_table(struct page_info *page) + { + page->nr_validated_ptes = i; + page->partial_pte = 0; ++ current->arch.old_guest_ptpg = NULL; + current->arch.old_guest_table = page; + } + while ( i-- > 0 ) +@@ -1627,6 +1724,7 @@ static int alloc_l4_table(struct page_info *page) + { + if ( current->arch.old_guest_table ) + page->nr_validated_ptes++; ++ current->arch.old_guest_ptpg = NULL; + current->arch.old_guest_table = page; + } + } +@@ -2369,14 +2467,20 @@ int free_page_type(struct page_info *pag + } + + +-static int __put_final_page_type( +- struct page_info *page, unsigned long type, int preemptible) ++static int _put_final_page_type(struct page_info *page, unsigned long type, ++ bool_t preemptible, struct page_info *ptpg) + { + int rc = free_page_type(page, type, preemptible); + + /* No need for atomic update of type_info here: noone else updates it. */ + if ( rc == 0 ) + { ++ if ( ptpg && PGT_type_equal(type, ptpg->u.inuse.type_info) ) ++ { ++ dec_linear_uses(page); ++ dec_linear_entries(ptpg); ++ } ++ ASSERT(!page->linear_pt_count || page_get_owner(page)->is_dying); + /* + * Record TLB information for flush later. We do not stamp page tables + * when running in shadow mode: +@@ -2412,8 +2516,8 @@ static int __put_final_page_type( + } + + +-static int __put_page_type(struct page_info *page, +- int preemptible) ++static int _put_page_type(struct page_info *page, bool_t preemptible, ++ struct page_info *ptpg) + { + unsigned long nx, x, y = page->u.inuse.type_info; + int rc = 0; +@@ -2440,12 +2544,28 @@ static int __put_page_type(struct page_info *page, + x, nx)) != x) ) + continue; + /* We cleared the 'valid bit' so we do the clean up. */ +- rc = __put_final_page_type(page, x, preemptible); ++ rc = _put_final_page_type(page, x, preemptible, ptpg); ++ ptpg = NULL; + if ( x & PGT_partial ) + put_page(page); + break; + } + ++ if ( ptpg && PGT_type_equal(x, ptpg->u.inuse.type_info) ) ++ { ++ /* ++ * page_set_tlbflush_timestamp() accesses the same union ++ * linear_pt_count lives in. Unvalidated page table pages, ++ * however, should occur during domain destruction only ++ * anyway. Updating of linear_pt_count luckily is not ++ * necessary anymore for a dying domain. ++ */ ++ ASSERT(page_get_owner(page)->is_dying); ++ ASSERT(page->linear_pt_count < 0); ++ ASSERT(ptpg->linear_pt_count > 0); ++ ptpg = NULL; ++ } ++ + /* + * Record TLB information for flush later. We do not stamp page + * tables when running in shadow mode: +@@ -2465,6 +2585,13 @@ static int __put_page_type(struct page_info *page, + return -EINTR; + } + ++ if ( ptpg && PGT_type_equal(x, ptpg->u.inuse.type_info) ) ++ { ++ ASSERT(!rc); ++ dec_linear_uses(page); ++ dec_linear_entries(ptpg); ++ } ++ + return rc; + } + +@@ -2599,6 +2726,7 @@ static int __get_page_type(struct page_info *page, unsigned long type, + page->nr_validated_ptes = 0; + page->partial_pte = 0; + } ++ page->linear_pt_count = 0; + rc = alloc_page_type(page, type, preemptible); + } + +@@ -2610,7 +2738,7 @@ static int __get_page_type(struct page_info *page, unsigned long type, + + void put_page_type(struct page_info *page) + { +- int rc = __put_page_type(page, 0); ++ int rc = _put_page_type(page, 0, NULL); + ASSERT(rc == 0); + (void)rc; + } +@@ -2626,7 +2754,7 @@ int get_page_type(struct page_info *page, unsigned long type) + + int put_page_type_preemptible(struct page_info *page) + { +- return __put_page_type(page, 1); ++ return _put_page_type(page, 1, NULL); + } + + int get_page_type_preemptible(struct page_info *page, unsigned long type) +@@ -2832,11 +2960,14 @@ int put_old_guest_table(struct vcpu *v) + if ( !v->arch.old_guest_table ) + return 0; + +- switch ( rc = put_page_and_type_preemptible(v->arch.old_guest_table) ) ++ switch ( rc = _put_page_type(v->arch.old_guest_table, 1, ++ v->arch.old_guest_ptpg) ) + { + case -EINTR: + case -ERESTART: + return -ERESTART; ++ case 0: ++ put_page(v->arch.old_guest_table); + } + + v->arch.old_guest_table = NULL; +@@ -2993,6 +3124,7 @@ int new_guest_cr3(unsigned long mfn) + rc = -ERESTART; + /* fallthrough */ + case -ERESTART: ++ curr->arch.old_guest_ptpg = NULL; + curr->arch.old_guest_table = page; + break; + default: +@@ -3260,7 +3392,10 @@ long do_mmuext_op( + if ( type == PGT_l1_page_table ) + put_page_and_type(page); + else ++ { ++ curr->arch.old_guest_ptpg = NULL; + curr->arch.old_guest_table = page; ++ } + } + } + +@@ -3293,6 +3428,7 @@ long do_mmuext_op( + { + case -EINTR: + case -ERESTART: ++ curr->arch.old_guest_ptpg = NULL; + curr->arch.old_guest_table = page; + rc = 0; + break; +@@ -3371,6 +3507,7 @@ long do_mmuext_op( + rc = -ERESTART; + /* fallthrough */ + case -ERESTART: ++ curr->arch.old_guest_ptpg = NULL; + curr->arch.old_guest_table = page; + break; + default: +diff --git a/xen/include/asm-x86/domain.h b/xen/include/asm-x86/domain.h +index 165e533ab3..5ef761be8b 100644 +--- a/xen/include/asm-x86/domain.h ++++ b/xen/include/asm-x86/domain.h +@@ -529,6 +529,8 @@ struct arch_vcpu + pagetable_t guest_table_user; /* (MFN) x86/64 user-space pagetable */ + pagetable_t guest_table; /* (MFN) guest notion of cr3 */ + struct page_info *old_guest_table; /* partially destructed pagetable */ ++ struct page_info *old_guest_ptpg; /* containing page table of the */ ++ /* former, if any */ + /* guest_table holds a ref to the page, and also a type-count unless + * shadow refcounts are in use */ + pagetable_t shadow_table[4]; /* (MFN) shadow(s) of guest */ +diff --git a/xen/include/asm-x86/mm.h b/xen/include/asm-x86/mm.h +index a30e76db1e..905c7971f2 100644 +--- a/xen/include/asm-x86/mm.h ++++ b/xen/include/asm-x86/mm.h +@@ -125,11 +125,11 @@ struct page_info + u32 tlbflush_timestamp; + + /* +- * When PGT_partial is true then this field is valid and indicates +- * that PTEs in the range [0, @nr_validated_ptes) have been validated. +- * An extra page reference must be acquired (or not dropped) whenever +- * PGT_partial gets set, and it must be dropped when the flag gets +- * cleared. This is so that a get() leaving a page in partially ++ * When PGT_partial is true then the first two fields are valid and ++ * indicate that PTEs in the range [0, @nr_validated_ptes) have been ++ * validated. An extra page reference must be acquired (or not dropped) ++ * whenever PGT_partial gets set, and it must be dropped when the flag ++ * gets cleared. This is so that a get() leaving a page in partially + * validated state (where the caller would drop the reference acquired + * due to the getting of the type [apparently] failing [-ERESTART]) + * would not accidentally result in a page left with zero general +@@ -153,10 +153,18 @@ struct page_info + * put_page_from_lNe() (due to the apparent failure), and hence it + * must be dropped when the put operation is resumed (and completes), + * but it must not be acquired if picking up the page for validation. ++ * ++ * The 3rd field, @linear_pt_count, indicates ++ * - by a positive value, how many same-level page table entries a page ++ * table has, ++ * - by a negative value, in how many same-level page tables a page is ++ * in use. + */ + struct { +- u16 nr_validated_ptes; +- s8 partial_pte; ++ u16 nr_validated_ptes:PAGETABLE_ORDER + 1; ++ u16 :16 - PAGETABLE_ORDER - 1 - 2; ++ s16 partial_pte:2; ++ s16 linear_pt_count; + }; + + /* +@@ -207,6 +215,9 @@ struct page_info + #define PGT_count_width PG_shift(9) + #define PGT_count_mask ((1UL< +Subject: x86: enforce proper privilege when (un)mapping pIRQ-s + +(Un)mapping of IRQs, just like other RESOURCE__ADD* / RESOURCE__REMOVE* +actions (in FLASK terms) should be XSM_DM_PRIV rather than XSM_TARGET. +This in turn requires bypassing the XSM check in physdev_unmap_pirq() +for the HVM emuirq case just like is being done in physdev_map_pirq(). +The primary goal security wise, however, is to no longer allow HVM +guests, by specifying their own domain ID instead of DOMID_SELF, to +enter code paths intended for PV guest and the control domains of HVM +guests only. + +This is part of XSA-237. + +Reported-by: HW42 +Signed-off-by: Jan Beulich +Reviewed-by: George Dunlap + +--- a/xen/arch/x86/physdev.c ++++ b/xen/arch/x86/physdev.c +@@ -110,7 +110,7 @@ int physdev_map_pirq(domid_t domid, int + if ( d == NULL ) + return -ESRCH; + +- ret = xsm_map_domain_pirq(XSM_TARGET, d); ++ ret = xsm_map_domain_pirq(XSM_DM_PRIV, d); + if ( ret ) + goto free_domain; + +@@ -255,13 +255,14 @@ int physdev_map_pirq(domid_t domid, int + int physdev_unmap_pirq(domid_t domid, int pirq) + { + struct domain *d; +- int ret; ++ int ret = 0; + + d = rcu_lock_domain_by_any_id(domid); + if ( d == NULL ) + return -ESRCH; + +- ret = xsm_unmap_domain_pirq(XSM_TARGET, d); ++ if ( domid != DOMID_SELF || !is_hvm_domain(d) ) ++ ret = xsm_unmap_domain_pirq(XSM_DM_PRIV, d); + if ( ret ) + goto free_domain; + +--- a/xen/include/xsm/dummy.h ++++ b/xen/include/xsm/dummy.h +@@ -453,7 +453,7 @@ static XSM_INLINE char *xsm_show_irq_sid + + static XSM_INLINE int xsm_map_domain_pirq(XSM_DEFAULT_ARG struct domain *d) + { +- XSM_ASSERT_ACTION(XSM_TARGET); ++ XSM_ASSERT_ACTION(XSM_DM_PRIV); + return xsm_default_action(action, current->domain, d); + } + +@@ -465,7 +465,7 @@ static XSM_INLINE int xsm_map_domain_irq + + static XSM_INLINE int xsm_unmap_domain_pirq(XSM_DEFAULT_ARG struct domain *d) + { +- XSM_ASSERT_ACTION(XSM_TARGET); ++ XSM_ASSERT_ACTION(XSM_DM_PRIV); + return xsm_default_action(action, current->domain, d); + } + Property changes on: head/emulators/xen-kernel47/files/0002-x86-enforce-proper-privilege-when-mapping-pIRQ-s.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/0002-x86-mm-Disable-PV-linear-pagetables-by-default.patch =================================================================== --- head/emulators/xen-kernel47/files/0002-x86-mm-Disable-PV-linear-pagetables-by-default.patch (nonexistent) +++ head/emulators/xen-kernel47/files/0002-x86-mm-Disable-PV-linear-pagetables-by-default.patch (revision 475254) @@ -0,0 +1,82 @@ +From 9a4b34729f1bb92eea1e1efe52e6face9f0b17ae Mon Sep 17 00:00:00 2001 +From: George Dunlap +Date: Fri, 22 Sep 2017 11:46:55 +0100 +Subject: [PATCH 2/2] x86/mm: Disable PV linear pagetables by default + +Allowing pagetables to point to other pagetables of the same level +(often called 'linear pagetables') has been included in Xen since its +inception. But it is not used by the most common PV guests (Linux, +NetBSD, minios), and has been the source of a number of subtle +reference-counting bugs. + +Add a command-line option to control whether PV linear pagetables are +allowed (disabled by default). + +Reported-by: Jann Horn +Signed-off-by: George Dunlap +Reviewed-by: Andrew Cooper +--- +Changes since v2: +- s/_/-/; in command-line option +- Added __read_mostly +--- + docs/misc/xen-command-line.markdown | 15 +++++++++++++++ + xen/arch/x86/mm.c | 9 +++++++++ + 2 files changed, 24 insertions(+) + +diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown +index 73f5265fc6..061aff5edc 100644 +--- a/docs/misc/xen-command-line.markdown ++++ b/docs/misc/xen-command-line.markdown +@@ -1280,6 +1280,21 @@ The following resources are available: + CDP, one COS will corespond two CBMs other than one with CAT, due to the + sum of CBMs is fixed, that means actual `cos_max` in use will automatically + reduce to half when CDP is enabled. ++ ++### pv-linear-pt ++> `= ` ++ ++> Default: `false` ++ ++Allow PV guests to have pagetable entries pointing to other pagetables ++of the same level (i.e., allowing L2 PTEs to point to other L2 pages). ++This technique is often called "linear pagetables", and is sometimes ++used to allow operating systems a simple way to consistently map the ++current process's pagetables into its own virtual address space. ++ ++None of the most common PV operating systems (Linux, NetBSD, MiniOS) ++use this technique, but there may be custom operating systems which ++do. + + ### reboot + > `= t[riple] | k[bd] | a[cpi] | p[ci] | P[ower] | e[fi] | n[o] [, [w]arm | [c]old]` +diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c +index e81a461b91..f748d4a221 100644 +--- a/xen/arch/x86/mm.c ++++ b/xen/arch/x86/mm.c +@@ -799,6 +799,9 @@ static void dec_linear_uses(struct page_info *pg) + * frame if it is mapped by a different root table. This is sufficient and + * also necessary to allow validation of a root table mapping itself. + */ ++static bool_t __read_mostly pv_linear_pt_enable = 0; ++boolean_param("pv-linear-pt", pv_linear_pt_enable); ++ + #define define_get_linear_pagetable(level) \ + static int \ + get_##level##_linear_pagetable( \ +@@ -808,6 +811,12 @@ get_##level##_linear_pagetable( \ + struct page_info *page; \ + unsigned long pfn; \ + \ ++ if ( !pv_linear_pt_enable ) \ ++ { \ ++ MEM_LOG("Attempt to create linear p.t. (feature disabled)"); \ ++ return 0; \ ++ } \ ++ \ + if ( (level##e_get_flags(pde) & _PAGE_RW) ) \ + { \ + MEM_LOG("Attempt to create linear p.t. with write perms"); \ +-- +2.14.1 + Property changes on: head/emulators/xen-kernel47/files/0002-x86-mm-Disable-PV-linear-pagetables-by-default.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/0003-x86-MSI-disallow-redundant-enabling.patch =================================================================== --- head/emulators/xen-kernel47/files/0003-x86-MSI-disallow-redundant-enabling.patch (nonexistent) +++ head/emulators/xen-kernel47/files/0003-x86-MSI-disallow-redundant-enabling.patch (revision 475254) @@ -0,0 +1,55 @@ +From: Jan Beulich +Subject: x86/MSI: disallow redundant enabling + +At the moment, Xen attempts to allow redundant enabling of MSI by +having pci_enable_msi() return 0, and point to the existing MSI +descriptor, when the msi already exists. + +Unfortunately, if subsequent errors are encountered, the cleanup +paths assume pci_enable_msi() had done full initialization, and +hence undo everything that was assumed to be done by that +function without also undoing other setup that would normally +occur only after that function was called (in map_domain_pirq() +itself). + +Rather than try to make the redundant enabling case work properly, just +forbid it entirely by having pci_enable_msi() return -EEXIST when MSI +is already set up. + +This is part of XSA-237. + +Reported-by: HW42 +Signed-off-by: Jan Beulich +Reviewed-by: Andrew Cooper +Reviewed-by: George Dunlap + +--- a/xen/arch/x86/msi.c ++++ b/xen/arch/x86/msi.c +@@ -1050,11 +1050,10 @@ static int __pci_enable_msi(struct msi_i + old_desc = find_msi_entry(pdev, msi->irq, PCI_CAP_ID_MSI); + if ( old_desc ) + { +- printk(XENLOG_WARNING "irq %d already mapped to MSI on %04x:%02x:%02x.%u\n", ++ printk(XENLOG_ERR "irq %d already mapped to MSI on %04x:%02x:%02x.%u\n", + msi->irq, msi->seg, msi->bus, + PCI_SLOT(msi->devfn), PCI_FUNC(msi->devfn)); +- *desc = old_desc; +- return 0; ++ return -EEXIST; + } + + old_desc = find_msi_entry(pdev, -1, PCI_CAP_ID_MSIX); +@@ -1118,11 +1117,10 @@ static int __pci_enable_msix(struct msi_ + old_desc = find_msi_entry(pdev, msi->irq, PCI_CAP_ID_MSIX); + if ( old_desc ) + { +- printk(XENLOG_WARNING "irq %d already mapped to MSI-X on %04x:%02x:%02x.%u\n", ++ printk(XENLOG_ERR "irq %d already mapped to MSI-X on %04x:%02x:%02x.%u\n", + msi->irq, msi->seg, msi->bus, + PCI_SLOT(msi->devfn), PCI_FUNC(msi->devfn)); +- *desc = old_desc; +- return 0; ++ return -EEXIST; + } + + old_desc = find_msi_entry(pdev, -1, PCI_CAP_ID_MSI); Property changes on: head/emulators/xen-kernel47/files/0003-x86-MSI-disallow-redundant-enabling.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/0004-x86-IRQ-conditionally-preserve-irq-pirq-mapping-on-error.patch =================================================================== --- head/emulators/xen-kernel47/files/0004-x86-IRQ-conditionally-preserve-irq-pirq-mapping-on-error.patch (nonexistent) +++ head/emulators/xen-kernel47/files/0004-x86-IRQ-conditionally-preserve-irq-pirq-mapping-on-error.patch (revision 475254) @@ -0,0 +1,124 @@ +From: Jan Beulich +Subject: x86/IRQ: conditionally preserve irq <-> pirq mapping on map error paths + +Mappings that had been set up before should not be torn down when +handling unrelated errors. + +This is part of XSA-237. + +Reported-by: HW42 +Signed-off-by: Jan Beulich +Reviewed-by: George Dunlap + +--- a/xen/arch/x86/irq.c ++++ b/xen/arch/x86/irq.c +@@ -1252,7 +1252,8 @@ static int prepare_domain_irq_pirq(struc + return -ENOMEM; + } + *pinfo = info; +- return 0; ++ ++ return !!err; + } + + static void set_domain_irq_pirq(struct domain *d, int irq, struct pirq *pirq) +@@ -1295,7 +1296,10 @@ int init_domain_irq_mapping(struct domai + continue; + err = prepare_domain_irq_pirq(d, i, i, &info); + if ( err ) ++ { ++ ASSERT(err < 0); + break; ++ } + set_domain_irq_pirq(d, i, info); + } + +@@ -1903,6 +1907,7 @@ int map_domain_pirq( + struct pirq *info; + struct irq_desc *desc; + unsigned long flags; ++ DECLARE_BITMAP(prepared, MAX_MSI_IRQS) = {}; + + ASSERT(spin_is_locked(&d->event_lock)); + +@@ -1946,8 +1951,10 @@ int map_domain_pirq( + } + + ret = prepare_domain_irq_pirq(d, irq, pirq, &info); +- if ( ret ) ++ if ( ret < 0 ) + goto revoke; ++ if ( !ret ) ++ __set_bit(0, prepared); + + desc = irq_to_desc(irq); + +@@ -2019,8 +2026,10 @@ int map_domain_pirq( + irq = create_irq(NUMA_NO_NODE); + ret = irq >= 0 ? prepare_domain_irq_pirq(d, irq, pirq + nr, &info) + : irq; +- if ( ret ) ++ if ( ret < 0 ) + break; ++ if ( !ret ) ++ __set_bit(nr, prepared); + msi_desc[nr].irq = irq; + + if ( irq_permit_access(d, irq) != 0 ) +@@ -2053,15 +2062,15 @@ int map_domain_pirq( + desc->msi_desc = NULL; + spin_unlock_irqrestore(&desc->lock, flags); + } +- while ( nr-- ) ++ while ( nr ) + { + if ( irq >= 0 && irq_deny_access(d, irq) ) + printk(XENLOG_G_ERR + "dom%d: could not revoke access to IRQ%d (pirq %d)\n", + d->domain_id, irq, pirq); +- if ( info ) ++ if ( info && test_bit(nr, prepared) ) + cleanup_domain_irq_pirq(d, irq, info); +- info = pirq_info(d, pirq + nr); ++ info = pirq_info(d, pirq + --nr); + irq = info->arch.irq; + } + msi_desc->irq = -1; +@@ -2077,12 +2086,14 @@ int map_domain_pirq( + spin_lock_irqsave(&desc->lock, flags); + set_domain_irq_pirq(d, irq, info); + spin_unlock_irqrestore(&desc->lock, flags); ++ ret = 0; + } + + done: + if ( ret ) + { +- cleanup_domain_irq_pirq(d, irq, info); ++ if ( test_bit(0, prepared) ) ++ cleanup_domain_irq_pirq(d, irq, info); + revoke: + if ( irq_deny_access(d, irq) ) + printk(XENLOG_G_ERR +--- a/xen/arch/x86/physdev.c ++++ b/xen/arch/x86/physdev.c +@@ -185,7 +185,7 @@ int physdev_map_pirq(domid_t domid, int + } + else if ( type == MAP_PIRQ_TYPE_MULTI_MSI ) + { +- if ( msi->entry_nr <= 0 || msi->entry_nr > 32 ) ++ if ( msi->entry_nr <= 0 || msi->entry_nr > MAX_MSI_IRQS ) + ret = -EDOM; + else if ( msi->entry_nr != 1 && !iommu_intremap ) + ret = -EOPNOTSUPP; +--- a/xen/include/asm-x86/msi.h ++++ b/xen/include/asm-x86/msi.h +@@ -55,6 +55,8 @@ + /* MAX fixed pages reserved for mapping MSIX tables. */ + #define FIX_MSIX_MAX_PAGES 512 + ++#define MAX_MSI_IRQS 32 /* limited by MSI capability struct properties */ ++ + struct msi_info { + u16 seg; + u8 bus; Property changes on: head/emulators/xen-kernel47/files/0004-x86-IRQ-conditionally-preserve-irq-pirq-mapping-on-error.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/0005-x86-FLASK-fix-unmap-domain-IRQ-XSM-hook.patch =================================================================== --- head/emulators/xen-kernel47/files/0005-x86-FLASK-fix-unmap-domain-IRQ-XSM-hook.patch (nonexistent) +++ head/emulators/xen-kernel47/files/0005-x86-FLASK-fix-unmap-domain-IRQ-XSM-hook.patch (revision 475254) @@ -0,0 +1,37 @@ +From: Jan Beulich +Subject: x86/FLASK: fix unmap-domain-IRQ XSM hook + +The caller and the FLASK implementation of xsm_unmap_domain_irq() +disagreed about what the "data" argument points to in the MSI case: +Change both sides to pass/take a PCI device. + +This is part of XSA-237. + +Signed-off-by: Jan Beulich +Reviewed-by: Andrew Cooper + +--- a/xen/arch/x86/irq.c ++++ b/xen/arch/x86/irq.c +@@ -2144,7 +2144,8 @@ int unmap_domain_pirq(struct domain *d, + nr = msi_desc->msi.nvec; + } + +- ret = xsm_unmap_domain_irq(XSM_HOOK, d, irq, msi_desc); ++ ret = xsm_unmap_domain_irq(XSM_HOOK, d, irq, ++ msi_desc ? msi_desc->dev : NULL); + if ( ret ) + goto done; + +--- a/xen/xsm/flask/hooks.c ++++ b/xen/xsm/flask/hooks.c +@@ -915,8 +915,8 @@ static int flask_unmap_domain_msi (struc + u32 *sid, struct avc_audit_data *ad) + { + #ifdef CONFIG_HAS_PCI +- struct msi_info *msi = data; +- u32 machine_bdf = (msi->seg << 16) | (msi->bus << 8) | msi->devfn; ++ const struct pci_dev *pdev = data; ++ u32 machine_bdf = (pdev->seg << 16) | (pdev->bus << 8) | pdev->devfn; + + AVC_AUDIT_DATA_INIT(ad, DEV); + ad->device = machine_bdf; Property changes on: head/emulators/xen-kernel47/files/0005-x86-FLASK-fix-unmap-domain-IRQ-XSM-hook.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa238.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa238.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa238.patch (revision 475254) @@ -0,0 +1,45 @@ +From cdc2887076b19b39fab9faec495082586f3113df Mon Sep 17 00:00:00 2001 +From: XenProject Security Team +Date: Tue, 5 Sep 2017 13:41:37 +0200 +Subject: x86/ioreq server: correctly handle bogus + XEN_DMOP_{,un}map_io_range_to_ioreq_server arguments + +Misbehaving device model can pass incorrect XEN_DMOP_map/ +unmap_io_range_to_ioreq_server arguments, namely end < start when +specifying address range. When this happens we hit ASSERT(s <= e) in +rangeset_contains_range()/rangeset_overlaps_range() with debug builds. +Production builds will not trap right away but may misbehave later +while handling such bogus ranges. + +This is XSA-238. + +Signed-off-by: Vitaly Kuznetsov +Reviewed-by: Jan Beulich +--- + xen/arch/x86/hvm/ioreq.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c +index b2a8b0e986..8c8bf1f0ec 100644 +--- a/xen/arch/x86/hvm/ioreq.c ++++ b/xen/arch/x86/hvm/ioreq.c +@@ -820,6 +820,9 @@ int hvm_map_io_range_to_ioreq_server(struct domain *d, ioservid_t id, + struct hvm_ioreq_server *s; + int rc; + ++ if ( start > end ) ++ return -EINVAL; ++ + spin_lock_recursive(&d->arch.hvm_domain.ioreq_server.lock); + + rc = -ENOENT; +@@ -872,6 +875,9 @@ int hvm_unmap_io_range_from_ioreq_server(struct domain *d, ioservid_t id, + struct hvm_ioreq_server *s; + int rc; + ++ if ( start > end ) ++ return -EINVAL; ++ + spin_lock_recursive(&d->arch.hvm_domain.ioreq_server.lock); + + rc = -ENOENT; Property changes on: head/emulators/xen-kernel47/files/xsa238.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa239.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa239.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa239.patch (revision 475254) @@ -0,0 +1,46 @@ +From: Jan Beulich +Subject: x86/HVM: prefill partially used variable on emulation paths + +Certain handlers ignore the access size (vioapic_write() being the +example this was found with), perhaps leading to subsequent reads +seeing data that wasn't actually written by the guest. For +consistency and extra safety also do this on the read path of +hvm_process_io_intercept(), even if this doesn't directly affect what +guests get to see, as we've supposedly already dealt with read handlers +leaving data completely unitialized. + +This is XSA-239. + +Reported-by: Roger Pau Monné +Reviewed-by: Roger Pau Monné +Signed-off-by: Jan Beulich + +--- a/xen/arch/x86/hvm/emulate.c ++++ b/xen/arch/x86/hvm/emulate.c +@@ -129,7 +129,7 @@ static int hvmemul_do_io( + .count = *reps, + .dir = dir, + .df = df, +- .data = data, ++ .data = data_is_addr ? data : 0, + .data_is_ptr = data_is_addr, /* ioreq_t field name is misleading */ + .state = STATE_IOREQ_READY, + }; +--- a/xen/arch/x86/hvm/intercept.c ++++ b/xen/arch/x86/hvm/intercept.c +@@ -127,6 +127,7 @@ int hvm_process_io_intercept(const struc + addr = (p->type == IOREQ_TYPE_COPY) ? + p->addr + step * i : + p->addr; ++ data = 0; + rc = ops->read(handler, addr, p->size, &data); + if ( rc != X86EMUL_OKAY ) + break; +@@ -161,6 +162,7 @@ int hvm_process_io_intercept(const struc + { + if ( p->data_is_ptr ) + { ++ data = 0; + switch ( hvm_copy_from_guest_phys(&data, p->data + step * i, + p->size) ) + { Property changes on: head/emulators/xen-kernel47/files/xsa239.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa241-4.8.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa241-4.8.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa241-4.8.patch (revision 475254) @@ -0,0 +1,120 @@ +x86: don't store possibly stale TLB flush time stamp + +While the timing window is extremely narrow, it is theoretically +possible for an update to the TLB flush clock and a subsequent flush +IPI to happen between the read and write parts of the update of the +per-page stamp. Exclude this possibility by disabling interrupts +across the update, preventing the IPI to be serviced in the middle. + +This is XSA-241. + +Reported-by: Jann Horn +Suggested-by: George Dunlap +Signed-off-by: Jan Beulich +Reviewed-by: George Dunlap + +--- a/xen/arch/arm/smp.c ++++ b/xen/arch/arm/smp.c +@@ -1,4 +1,5 @@ + #include ++#include + #include + #include + #include +--- a/xen/arch/x86/mm.c ++++ b/xen/arch/x86/mm.c +@@ -2524,7 +2524,7 @@ static int _put_final_page_type(struct p + */ + if ( !(shadow_mode_enabled(page_get_owner(page)) && + (page->count_info & PGC_page_table)) ) +- page->tlbflush_timestamp = tlbflush_current_time(); ++ page_set_tlbflush_timestamp(page); + wmb(); + page->u.inuse.type_info--; + } +@@ -2534,7 +2534,7 @@ static int _put_final_page_type(struct p + (PGT_count_mask|PGT_validated|PGT_partial)) == 1); + if ( !(shadow_mode_enabled(page_get_owner(page)) && + (page->count_info & PGC_page_table)) ) +- page->tlbflush_timestamp = tlbflush_current_time(); ++ page_set_tlbflush_timestamp(page); + wmb(); + page->u.inuse.type_info |= PGT_validated; + } +@@ -2588,7 +2588,7 @@ static int _put_page_type(struct page_in + if ( ptpg && PGT_type_equal(x, ptpg->u.inuse.type_info) ) + { + /* +- * page_set_tlbflush_timestamp() accesses the same union ++ * set_tlbflush_timestamp() accesses the same union + * linear_pt_count lives in. Unvalidated page table pages, + * however, should occur during domain destruction only + * anyway. Updating of linear_pt_count luckily is not +@@ -2609,7 +2609,7 @@ static int _put_page_type(struct page_in + */ + if ( !(shadow_mode_enabled(page_get_owner(page)) && + (page->count_info & PGC_page_table)) ) +- page->tlbflush_timestamp = tlbflush_current_time(); ++ page_set_tlbflush_timestamp(page); + } + + if ( likely((y = cmpxchg(&page->u.inuse.type_info, x, nx)) == x) ) +--- a/xen/arch/x86/mm/shadow/common.c ++++ b/xen/arch/x86/mm/shadow/common.c +@@ -1464,7 +1464,7 @@ void shadow_free(struct domain *d, mfn_t + * TLBs when we reuse the page. Because the destructors leave the + * contents of the pages in place, we can delay TLB flushes until + * just before the allocator hands the page out again. */ +- sp->tlbflush_timestamp = tlbflush_current_time(); ++ page_set_tlbflush_timestamp(sp); + perfc_decr(shadow_alloc_count); + page_list_add_tail(sp, &d->arch.paging.shadow.freelist); + sp = next; +--- a/xen/common/page_alloc.c ++++ b/xen/common/page_alloc.c +@@ -960,7 +960,7 @@ static void free_heap_pages( + /* If a page has no owner it will need no safety TLB flush. */ + pg[i].u.free.need_tlbflush = (page_get_owner(&pg[i]) != NULL); + if ( pg[i].u.free.need_tlbflush ) +- pg[i].tlbflush_timestamp = tlbflush_current_time(); ++ page_set_tlbflush_timestamp(&pg[i]); + + /* This page is not a guest frame any more. */ + page_set_owner(&pg[i], NULL); /* set_gpfn_from_mfn snoops pg owner */ +--- a/xen/include/asm-arm/flushtlb.h ++++ b/xen/include/asm-arm/flushtlb.h +@@ -12,6 +12,11 @@ static inline void tlbflush_filter(cpuma + + #define tlbflush_current_time() (0) + ++static inline void page_set_tlbflush_timestamp(struct page_info *page) ++{ ++ page->tlbflush_timestamp = tlbflush_current_time(); ++} ++ + #if defined(CONFIG_ARM_32) + # include + #elif defined(CONFIG_ARM_64) +--- a/xen/include/asm-x86/flushtlb.h ++++ b/xen/include/asm-x86/flushtlb.h +@@ -23,6 +23,20 @@ DECLARE_PER_CPU(u32, tlbflush_time); + + #define tlbflush_current_time() tlbflush_clock + ++static inline void page_set_tlbflush_timestamp(struct page_info *page) ++{ ++ /* ++ * Prevent storing a stale time stamp, which could happen if an update ++ * to tlbflush_clock plus a subsequent flush IPI happen between the ++ * reading of tlbflush_clock and the writing of the struct page_info ++ * field. ++ */ ++ ASSERT(local_irq_is_enabled()); ++ local_irq_disable(); ++ page->tlbflush_timestamp = tlbflush_current_time(); ++ local_irq_enable(); ++} ++ + /* + * @cpu_stamp is the timestamp at last TLB flush for the CPU we are testing. + * @lastuse_stamp is a timestamp taken when the PFN we are testing was last Property changes on: head/emulators/xen-kernel47/files/xsa241-4.8.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa242-4.9.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa242-4.9.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa242-4.9.patch (revision 475254) @@ -0,0 +1,43 @@ +From: Jan Beulich +Subject: x86: don't allow page_unlock() to drop the last type reference + +Only _put_page_type() does the necessary cleanup, and hence not all +domain pages can be released during guest cleanup (leaving around +zombie domains) if we get this wrong. + +This is XSA-242. + +Signed-off-by: Jan Beulich + +--- a/xen/arch/x86/mm.c ++++ b/xen/arch/x86/mm.c +@@ -1923,7 +1923,11 @@ void page_unlock(struct page_info *page) + + do { + x = y; ++ ASSERT((x & PGT_count_mask) && (x & PGT_locked)); ++ + nx = x - (1 | PGT_locked); ++ /* We must not drop the last reference here. */ ++ ASSERT(nx & PGT_count_mask); + } while ( (y = cmpxchg(&page->u.inuse.type_info, x, nx)) != x ); + } + +@@ -2611,6 +2615,17 @@ static int _put_page_type(struct page_in + (page->count_info & PGC_page_table)) ) + page_set_tlbflush_timestamp(page); + } ++ else if ( unlikely((nx & (PGT_locked | PGT_count_mask)) == ++ (PGT_locked | 1)) ) ++ { ++ /* ++ * We must not drop the second to last reference when the page is ++ * locked, as page_unlock() doesn't do any cleanup of the type. ++ */ ++ cpu_relax(); ++ y = page->u.inuse.type_info; ++ continue; ++ } + + if ( likely((y = cmpxchg(&page->u.inuse.type_info, x, nx)) == x) ) + break; Property changes on: head/emulators/xen-kernel47/files/xsa242-4.9.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa243-4.7.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa243-4.7.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa243-4.7.patch (revision 475254) @@ -0,0 +1,93 @@ +From: Andrew Cooper +Subject: x86/shadow: Don't create self-linear shadow mappings for 4-level translated guests + +When initially creating a monitor table for 4-level translated guests, don't +install a shadow-linear mapping. This mapping is actually self-linear, and +trips up the writeable heuristic logic into following Xen's mappings, not the +guests' shadows it was expecting to follow. + +A consequence of this is that sh_guess_wrmap() needs to cope with there being +no shadow-linear mapping present, which in practice occurs once each time a +vcpu switches to 4-level paging from a different paging mode. + +An appropriate shadow-linear slot will be inserted into the monitor table +either while constructing lower level monitor tables, or by sh_update_cr3(). + +While fixing this, clarify the safety of the other mappings. Despite +appearing unsafe, it is correct to create a guest-linear mapping for +translated domains; this is self-linear and doesn't point into the translated +domain. Drop a dead clause for translate != external guests. + +This is XSA-243. + +Signed-off-by: Andrew Cooper +Acked-by: Tim Deegan + +diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.c +index 428be37..c83932f 100644 +--- a/xen/arch/x86/mm/shadow/multi.c ++++ b/xen/arch/x86/mm/shadow/multi.c +@@ -1472,26 +1472,38 @@ void sh_install_xen_entries_in_l4(struct domain *d, mfn_t gl4mfn, mfn_t sl4mfn) + sl4e[shadow_l4_table_offset(RO_MPT_VIRT_START)] = shadow_l4e_empty(); + } + +- /* Shadow linear mapping for 4-level shadows. N.B. for 3-level +- * shadows on 64-bit xen, this linear mapping is later replaced by the +- * monitor pagetable structure, which is built in make_monitor_table +- * and maintained by sh_update_linear_entries. */ +- sl4e[shadow_l4_table_offset(SH_LINEAR_PT_VIRT_START)] = +- shadow_l4e_from_mfn(sl4mfn, __PAGE_HYPERVISOR); +- +- /* Self linear mapping. */ +- if ( shadow_mode_translate(d) && !shadow_mode_external(d) ) ++ /* ++ * Linear mapping slots: ++ * ++ * Calling this function with gl4mfn == sl4mfn is used to construct a ++ * monitor table for translated domains. In this case, gl4mfn forms the ++ * self-linear mapping (i.e. not pointing into the translated domain), and ++ * the shadow-linear slot is skipped. The shadow-linear slot is either ++ * filled when constructing lower level monitor tables, or via ++ * sh_update_cr3() for 4-level guests. ++ * ++ * Calling this function with gl4mfn != sl4mfn is used for non-translated ++ * guests, where the shadow-linear slot is actually self-linear, and the ++ * guest-linear slot points into the guests view of its pagetables. ++ */ ++ if ( shadow_mode_translate(d) ) + { +- // linear tables may not be used with translated PV guests +- sl4e[shadow_l4_table_offset(LINEAR_PT_VIRT_START)] = ++ ASSERT(mfn_x(gl4mfn) == mfn_x(sl4mfn)); ++ ++ sl4e[shadow_l4_table_offset(SH_LINEAR_PT_VIRT_START)] = + shadow_l4e_empty(); + } + else + { +- sl4e[shadow_l4_table_offset(LINEAR_PT_VIRT_START)] = +- shadow_l4e_from_mfn(gl4mfn, __PAGE_HYPERVISOR); ++ ASSERT(mfn_x(gl4mfn) != mfn_x(sl4mfn)); ++ ++ sl4e[shadow_l4_table_offset(SH_LINEAR_PT_VIRT_START)] = ++ shadow_l4e_from_mfn(sl4mfn, __PAGE_HYPERVISOR); + } + ++ sl4e[shadow_l4_table_offset(LINEAR_PT_VIRT_START)] = ++ shadow_l4e_from_mfn(gl4mfn, __PAGE_HYPERVISOR); ++ + unmap_domain_page(sl4e); + } + #endif +@@ -4293,6 +4305,11 @@ static int sh_guess_wrmap(struct vcpu *v, unsigned long vaddr, mfn_t gmfn) + + /* Carefully look in the shadow linear map for the l1e we expect */ + #if SHADOW_PAGING_LEVELS >= 4 ++ /* Is a shadow linear map is installed in the first place? */ ++ sl4p = v->arch.paging.shadow.guest_vtable; ++ sl4p += shadow_l4_table_offset(SH_LINEAR_PT_VIRT_START); ++ if ( !(shadow_l4e_get_flags(*sl4p) & _PAGE_PRESENT) ) ++ return 0; + sl4p = sh_linear_l4_table(v) + shadow_l4_linear_offset(vaddr); + if ( !(shadow_l4e_get_flags(*sl4p) & _PAGE_PRESENT) ) + return 0; Property changes on: head/emulators/xen-kernel47/files/xsa243-4.7.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa244-4.7.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa244-4.7.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa244-4.7.patch (revision 475254) @@ -0,0 +1,51 @@ +From: Andrew Cooper +Subject: x86/cpu: fix IST handling during PCPU bringup + +Clear IST references in newly allocated IDTs. Nothing good will come of +having them set before the TSS is suitably constructed (although the chances +of the CPU surviving such an IST interrupt/exception is extremely slim). + +Uniformly set the IST references after the TSS is in place. This fixes an +issue on AMD hardware, where onlining a PCPU while PCPU0 is in HVM context +will cause IST_NONE to be copied into the new IDT, making that PCPU vulnerable +to privilege escalation from PV guests until it subsequently schedules an HVM +guest. + +This is XSA-244. + +Signed-off-by: Andrew Cooper +Reviewed-by: Jan Beulich + +--- a/xen/arch/x86/cpu/common.c ++++ b/xen/arch/x86/cpu/common.c +@@ -617,6 +617,7 @@ void __init early_cpu_init(void) + * - Sets up TSS with stack pointers, including ISTs + * - Inserts TSS selector into regular and compat GDTs + * - Loads GDT, IDT, TR then null LDT ++ * - Sets up IST references in the IDT + */ + void load_system_tables(void) + { +@@ -663,6 +664,10 @@ void load_system_tables(void) + asm volatile ("lidt %0" : : "m" (idtr) ); + asm volatile ("ltr %w0" : : "rm" (TSS_ENTRY << 3) ); + asm volatile ("lldt %w0" : : "rm" (0) ); ++ ++ set_ist(&idt_tables[cpu][TRAP_double_fault], IST_DF); ++ set_ist(&idt_tables[cpu][TRAP_nmi], IST_NMI); ++ set_ist(&idt_tables[cpu][TRAP_machine_check], IST_MCE); + } + + /* +--- a/xen/arch/x86/smpboot.c ++++ b/xen/arch/x86/smpboot.c +@@ -715,6 +715,9 @@ static int cpu_smpboot_alloc(unsigned in + if ( idt_tables[cpu] == NULL ) + goto oom; + memcpy(idt_tables[cpu], idt_table, IDT_ENTRIES * sizeof(idt_entry_t)); ++ set_ist(&idt_tables[cpu][TRAP_double_fault], IST_NONE); ++ set_ist(&idt_tables[cpu][TRAP_nmi], IST_NONE); ++ set_ist(&idt_tables[cpu][TRAP_machine_check], IST_NONE); + + for ( stub_page = 0, i = cpu & ~(STUBS_PER_PAGE - 1); + i < nr_cpu_ids && i <= (cpu | (STUBS_PER_PAGE - 1)); ++i ) Property changes on: head/emulators/xen-kernel47/files/xsa244-4.7.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa231-4.7.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa231-4.7.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa231-4.7.patch (revision 475254) @@ -0,0 +1,108 @@ +From: George Dunlap +Subject: xen/mm: make sure node is less than MAX_NUMNODES + +The output of MEMF_get_node(memflags) can be as large as nodeid_t can +hold (currently 255). This is then used as an index to arrays of size +MAX_NUMNODE, which is 64 on x86 and 1 on ARM, can be passed in by an +untrusted guest (via memory_exchange and increase_reservation) and is +not currently bounds-checked. + +Check the value in page_alloc.c before using it, and also check the +value in the hypercall call sites and return -EINVAL if appropriate. +Don't permit domains other than the hardware or control domain to +allocate node-constrained memory. + +This is XSA-231. + +Reported-by: Matthew Daley +Signed-off-by: George Dunlap +Signed-off-by: Jan Beulich +Reviewed-by: Andrew Cooper + +--- a/xen/common/memory.c ++++ b/xen/common/memory.c +@@ -390,6 +390,31 @@ static void decrease_reservation(struct + a->nr_done = i; + } + ++static bool_t propagate_node(unsigned int xmf, unsigned int *memflags) ++{ ++ const struct domain *currd = current->domain; ++ ++ BUILD_BUG_ON(XENMEMF_get_node(0) != NUMA_NO_NODE); ++ BUILD_BUG_ON(MEMF_get_node(0) != NUMA_NO_NODE); ++ ++ if ( XENMEMF_get_node(xmf) == NUMA_NO_NODE ) ++ return 1; ++ ++ if ( is_hardware_domain(currd) || is_control_domain(currd) ) ++ { ++ if ( XENMEMF_get_node(xmf) >= MAX_NUMNODES ) ++ return 0; ++ ++ *memflags |= MEMF_node(XENMEMF_get_node(xmf)); ++ if ( xmf & XENMEMF_exact_node_request ) ++ *memflags |= MEMF_exact_node; ++ } ++ else if ( xmf & XENMEMF_exact_node_request ) ++ return 0; ++ ++ return 1; ++} ++ + static long memory_exchange(XEN_GUEST_HANDLE_PARAM(xen_memory_exchange_t) arg) + { + struct xen_memory_exchange exch; +@@ -462,6 +487,12 @@ static long memory_exchange(XEN_GUEST_HA + } + } + ++ if ( unlikely(!propagate_node(exch.out.mem_flags, &memflags)) ) ++ { ++ rc = -EINVAL; ++ goto fail_early; ++ } ++ + d = rcu_lock_domain_by_any_id(exch.in.domid); + if ( d == NULL ) + { +@@ -480,7 +511,6 @@ static long memory_exchange(XEN_GUEST_HA + d, + XENMEMF_get_address_bits(exch.out.mem_flags) ? : + (BITS_PER_LONG+PAGE_SHIFT))); +- memflags |= MEMF_node(XENMEMF_get_node(exch.out.mem_flags)); + + for ( i = (exch.nr_exchanged >> in_chunk_order); + i < (exch.in.nr_extents >> in_chunk_order); +@@ -834,12 +864,8 @@ static int construct_memop_from_reservat + } + read_unlock(&d->vnuma_rwlock); + } +- else +- { +- a->memflags |= MEMF_node(XENMEMF_get_node(r->mem_flags)); +- if ( r->mem_flags & XENMEMF_exact_node_request ) +- a->memflags |= MEMF_exact_node; +- } ++ else if ( unlikely(!propagate_node(r->mem_flags, &a->memflags)) ) ++ return -EINVAL; + + return 0; + } +--- a/xen/common/page_alloc.c ++++ b/xen/common/page_alloc.c +@@ -711,9 +711,13 @@ static struct page_info *alloc_heap_page + if ( node >= MAX_NUMNODES ) + node = cpu_to_node(smp_processor_id()); + } ++ else if ( unlikely(node >= MAX_NUMNODES) ) ++ { ++ ASSERT_UNREACHABLE(); ++ return NULL; ++ } + first_node = node; + +- ASSERT(node < MAX_NUMNODES); + ASSERT(zone_lo <= zone_hi); + ASSERT(zone_hi < NR_ZONES); + Property changes on: head/emulators/xen-kernel47/files/xsa231-4.7.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa232.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa232.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa232.patch (revision 475254) @@ -0,0 +1,23 @@ +From: Andrew Cooper +Subject: grant_table: fix GNTTABOP_cache_flush handling + +Don't fall over a NULL grant_table pointer when the owner of the domain +is a system domain (DOMID_{XEN,IO} etc). + +This is XSA-232. + +Reported-by: Matthew Daley +Signed-off-by: Andrew Cooper +Reviewed-by: Jan Beulich + +--- a/xen/common/grant_table.c ++++ b/xen/common/grant_table.c +@@ -3053,7 +3053,7 @@ static int cache_flush(gnttab_cache_flus + + page = mfn_to_page(mfn); + owner = page_get_owner_and_reference(page); +- if ( !owner ) ++ if ( !owner || !owner->grant_table ) + { + rcu_unlock_domain(d); + return -EPERM; Property changes on: head/emulators/xen-kernel47/files/xsa232.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa233.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa233.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa233.patch (revision 475254) @@ -0,0 +1,52 @@ +From: Juergen Gross +Subject: tools/xenstore: dont unlink connection object twice + +A connection object of a domain with associated stubdom has two +parents: the domain and the stubdom. When cleaning up the list of +active domains in domain_cleanup() make sure not to unlink the +connection twice from the same domain. This could happen when the +domain and its stubdom are being destroyed at the same time leading +to the domain loop being entered twice. + +Additionally don't use talloc_free() in this case as it will remove +a random parent link, leading eventually to a memory leak. Use +talloc_unlink() instead specifying the context from which the +connection object should be removed. + +This is XSA-233. + +Reported-by: Eric Chanudet +Signed-off-by: Juergen Gross +Reviewed-by: Ian Jackson + +--- a/tools/xenstore/xenstored_domain.c ++++ b/tools/xenstore/xenstored_domain.c +@@ -221,10 +221,11 @@ static int destroy_domain(void *_domain) + static void domain_cleanup(void) + { + xc_dominfo_t dominfo; +- struct domain *domain, *tmp; ++ struct domain *domain; + int notify = 0; + +- list_for_each_entry_safe(domain, tmp, &domains, list) { ++ again: ++ list_for_each_entry(domain, &domains, list) { + if (xc_domain_getinfo(*xc_handle, domain->domid, 1, + &dominfo) == 1 && + dominfo.domid == domain->domid) { +@@ -236,8 +237,12 @@ static void domain_cleanup(void) + if (!dominfo.dying) + continue; + } +- talloc_free(domain->conn); +- notify = 0; /* destroy_domain() fires the watch */ ++ if (domain->conn) { ++ talloc_unlink(talloc_autofree_context(), domain->conn); ++ domain->conn = NULL; ++ notify = 0; /* destroy_domain() fires the watch */ ++ goto again; ++ } + } + + if (notify) Property changes on: head/emulators/xen-kernel47/files/xsa233.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa234-4.8.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa234-4.8.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa234-4.8.patch (revision 475254) @@ -0,0 +1,185 @@ +From: Jan Beulich +Subject: gnttab: also validate PTE permissions upon destroy/replace + +In order for PTE handling to match up with the reference counting done +by common code, presence and writability of grant mapping PTEs must +also be taken into account; validating just the frame number is not +enough. This is in particular relevant if a guest fiddles with grant +PTEs via non-grant hypercalls. + +Note that the flags being passed to replace_grant_host_mapping() +already happen to be those of the existing mapping, so no new function +parameter is needed. + +This is XSA-234. + +Reported-by: Andrew Cooper +Signed-off-by: Jan Beulich +Reviewed-by: Andrew Cooper + +--- a/xen/arch/x86/mm.c ++++ b/xen/arch/x86/mm.c +@@ -4017,7 +4017,8 @@ static int create_grant_pte_mapping( + } + + static int destroy_grant_pte_mapping( +- uint64_t addr, unsigned long frame, struct domain *d) ++ uint64_t addr, unsigned long frame, unsigned int grant_pte_flags, ++ struct domain *d) + { + int rc = GNTST_okay; + void *va; +@@ -4063,16 +4064,27 @@ static int destroy_grant_pte_mapping( + + ol1e = *(l1_pgentry_t *)va; + +- /* Check that the virtual address supplied is actually mapped to frame. */ +- if ( unlikely(l1e_get_pfn(ol1e) != frame) ) ++ /* ++ * Check that the PTE supplied actually maps frame (with appropriate ++ * permissions). ++ */ ++ if ( unlikely(l1e_get_pfn(ol1e) != frame) || ++ unlikely((l1e_get_flags(ol1e) ^ grant_pte_flags) & ++ (_PAGE_PRESENT | _PAGE_RW)) ) + { + page_unlock(page); +- MEM_LOG("PTE entry %lx for address %"PRIx64" doesn't match frame %lx", +- (unsigned long)l1e_get_intpte(ol1e), addr, frame); ++ MEM_LOG("PTE %"PRIpte" at %"PRIx64" doesn't match grant (%"PRIpte")", ++ l1e_get_intpte(ol1e), addr, ++ l1e_get_intpte(l1e_from_pfn(frame, grant_pte_flags))); + rc = GNTST_general_error; + goto failed; + } + ++ if ( unlikely((l1e_get_flags(ol1e) ^ grant_pte_flags) & ++ ~(_PAGE_AVAIL | PAGE_CACHE_ATTRS)) ) ++ MEM_LOG("PTE flags %x at %"PRIx64" don't match grant (%x)\n", ++ l1e_get_flags(ol1e), addr, grant_pte_flags); ++ + /* Delete pagetable entry. */ + if ( unlikely(!UPDATE_ENTRY + (l1, +@@ -4081,7 +4093,7 @@ static int destroy_grant_pte_mapping( + 0)) ) + { + page_unlock(page); +- MEM_LOG("Cannot delete PTE entry at %p", va); ++ MEM_LOG("Cannot delete PTE entry at %"PRIx64, addr); + rc = GNTST_general_error; + goto failed; + } +@@ -4149,7 +4161,8 @@ static int create_grant_va_mapping( + } + + static int replace_grant_va_mapping( +- unsigned long addr, unsigned long frame, l1_pgentry_t nl1e, struct vcpu *v) ++ unsigned long addr, unsigned long frame, unsigned int grant_pte_flags, ++ l1_pgentry_t nl1e, struct vcpu *v) + { + l1_pgentry_t *pl1e, ol1e; + unsigned long gl1mfn; +@@ -4185,19 +4198,30 @@ static int replace_grant_va_mapping( + + ol1e = *pl1e; + +- /* Check that the virtual address supplied is actually mapped to frame. */ +- if ( unlikely(l1e_get_pfn(ol1e) != frame) ) +- { +- MEM_LOG("PTE entry %lx for address %lx doesn't match frame %lx", +- l1e_get_pfn(ol1e), addr, frame); ++ /* ++ * Check that the virtual address supplied is actually mapped to frame ++ * (with appropriate permissions). ++ */ ++ if ( unlikely(l1e_get_pfn(ol1e) != frame) || ++ unlikely((l1e_get_flags(ol1e) ^ grant_pte_flags) & ++ (_PAGE_PRESENT | _PAGE_RW)) ) ++ { ++ MEM_LOG("PTE %"PRIpte" for %lx doesn't match grant (%"PRIpte")", ++ l1e_get_intpte(ol1e), addr, ++ l1e_get_intpte(l1e_from_pfn(frame, grant_pte_flags))); + rc = GNTST_general_error; + goto unlock_and_out; + } + ++ if ( unlikely((l1e_get_flags(ol1e) ^ grant_pte_flags) & ++ ~(_PAGE_AVAIL | PAGE_CACHE_ATTRS)) ) ++ MEM_LOG("PTE flags %x for %"PRIx64" don't match grant (%x)", ++ l1e_get_flags(ol1e), addr, grant_pte_flags); ++ + /* Delete pagetable entry. */ + if ( unlikely(!UPDATE_ENTRY(l1, pl1e, ol1e, nl1e, gl1mfn, v, 0)) ) + { +- MEM_LOG("Cannot delete PTE entry at %p", (unsigned long *)pl1e); ++ MEM_LOG("Cannot delete PTE entry for %"PRIx64, addr); + rc = GNTST_general_error; + goto unlock_and_out; + } +@@ -4211,9 +4235,11 @@ static int replace_grant_va_mapping( + } + + static int destroy_grant_va_mapping( +- unsigned long addr, unsigned long frame, struct vcpu *v) ++ unsigned long addr, unsigned long frame, unsigned int grant_pte_flags, ++ struct vcpu *v) + { +- return replace_grant_va_mapping(addr, frame, l1e_empty(), v); ++ return replace_grant_va_mapping(addr, frame, grant_pte_flags, ++ l1e_empty(), v); + } + + static int create_grant_p2m_mapping(uint64_t addr, unsigned long frame, +@@ -4307,21 +4333,40 @@ int replace_grant_host_mapping( + unsigned long gl1mfn; + struct page_info *l1pg; + int rc; ++ unsigned int grant_pte_flags; + + if ( paging_mode_external(current->domain) ) + return replace_grant_p2m_mapping(addr, frame, new_addr, flags); + ++ grant_pte_flags = ++ _PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_GNTTAB | _PAGE_NX; ++ ++ if ( flags & GNTMAP_application_map ) ++ grant_pte_flags |= _PAGE_USER; ++ if ( !(flags & GNTMAP_readonly) ) ++ grant_pte_flags |= _PAGE_RW; ++ /* ++ * On top of the explicit settings done by create_grant_host_mapping() ++ * also open-code relevant parts of adjust_guest_l1e(). Don't mirror ++ * available and cachability flags, though. ++ */ ++ if ( !is_pv_32bit_domain(curr->domain) ) ++ grant_pte_flags |= (grant_pte_flags & _PAGE_USER) ++ ? _PAGE_GLOBAL ++ : _PAGE_GUEST_KERNEL | _PAGE_USER; ++ + if ( flags & GNTMAP_contains_pte ) + { + if ( !new_addr ) +- return destroy_grant_pte_mapping(addr, frame, curr->domain); ++ return destroy_grant_pte_mapping(addr, frame, grant_pte_flags, ++ curr->domain); + + MEM_LOG("Unsupported grant table operation"); + return GNTST_general_error; + } + + if ( !new_addr ) +- return destroy_grant_va_mapping(addr, frame, curr); ++ return destroy_grant_va_mapping(addr, frame, grant_pte_flags, curr); + + pl1e = guest_map_l1e(new_addr, &gl1mfn); + if ( !pl1e ) +@@ -4369,7 +4414,7 @@ int replace_grant_host_mapping( + put_page(l1pg); + guest_unmap_l1e(pl1e); + +- rc = replace_grant_va_mapping(addr, frame, ol1e, curr); ++ rc = replace_grant_va_mapping(addr, frame, grant_pte_flags, ol1e, curr); + if ( rc && !paging_mode_refcounts(curr->domain) ) + put_page_from_l1e(ol1e, curr->domain); + Property changes on: head/emulators/xen-kernel47/files/xsa234-4.8.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa226-4.7.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa226-4.7.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa226-4.7.patch (revision 475254) @@ -0,0 +1,133 @@ +From: Andrew Cooper +Subject: grant_table: Default to v1, and disallow transitive grants + +The reference counting and locking discipline for transitive grants is broken. +Their use is therefore declared out of security support. + +This is XSA-226. + +Transitive grants are expected to be unconditionally available with grant +table v2. Hiding transitive grants alone is an ABI breakage for the guest. +Modern versions of Linux and the Windows PV drivers use grant table v1, but +older versions did use v2. + +In principle, disabling gnttab v2 entirely is the safer way to cause guests to +avoid using transitive grants. However, some older guests which defaulted to +using gnttab v2 don't tolerate falling back from v2 to v1 over migrate. + +This patch introduces a new command line option to control grant table +behaviour. One suboption allows a choice of the maximum grant table version +Xen will allow the guest to use, and defaults to v2. A different suboption +independently controls whether transitive grants can be used. + +The default case is: + + gnttab=max_ver:2 + +To disable gnttab v2 entirely, use: + + gnttab=max_ver:1 + +To allow gnttab v2 and transitive grants, use: + + gnttab=max_ver:2,transitive + +Reported-by: Jan Beulich +Signed-off-by: Andrew Cooper +diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown +index 73f5265..b792abf 100644 +--- a/docs/misc/xen-command-line.markdown ++++ b/docs/misc/xen-command-line.markdown +@@ -758,6 +758,22 @@ Controls EPT related features. + + Specify which console gdbstub should use. See **console**. + ++### gnttab ++> `= List of [ max_ver:, transitive ]` ++ ++> Default: `gnttab=max_ver:2,no-transitive` ++ ++Control various aspects of the grant table behaviour available to guests. ++ ++* `max_ver` Select the maximum grant table version to offer to guests. Valid ++version are 1 and 2. ++* `transitive` Permit or disallow the use of transitive grants. Note that the ++use of grant table v2 without transitive grants is an ABI breakage from the ++guests point of view. ++ ++*Warning:* ++Due to XSA-226, the use of transitive grants is outside of security support. ++ + ### gnttab\_max\_frames + > `= ` + +diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c +index f06b664..109c552 100644 +--- a/xen/common/grant_table.c ++++ b/xen/common/grant_table.c +@@ -50,6 +50,42 @@ integer_param("gnttab_max_nr_frames", max_nr_grant_frames); + unsigned int __read_mostly max_grant_frames; + integer_param("gnttab_max_frames", max_grant_frames); + ++static unsigned int __read_mostly opt_gnttab_max_version = 2; ++static bool_t __read_mostly opt_transitive_grants; ++ ++static void __init parse_gnttab(char *s) ++{ ++ char *ss; ++ ++ do { ++ ss = strchr(s, ','); ++ if ( ss ) ++ *ss = '\0'; ++ ++ if ( !strncmp(s, "max_ver:", 8) ) ++ { ++ long ver = simple_strtol(s + 8, NULL, 10); ++ ++ if ( ver >= 1 && ver <= 2 ) ++ opt_gnttab_max_version = ver; ++ } ++ else ++ { ++ bool_t val = !!strncmp(s, "no-", 3); ++ ++ if ( !val ) ++ s += 3; ++ ++ if ( !strcmp(s, "transitive") ) ++ opt_transitive_grants = val; ++ } ++ ++ s = ss + 1; ++ } while ( ss ); ++} ++ ++custom_param("gnttab", parse_gnttab); ++ + /* The maximum number of grant mappings is defined as a multiplier of the + * maximum number of grant table entries. This defines the multiplier used. + * Pretty arbitrary. [POLICY] +@@ -2188,6 +2224,10 @@ __acquire_grant_for_copy( + } + else if ( (shah->flags & GTF_type_mask) == GTF_transitive ) + { ++ if ( !opt_transitive_grants ) ++ PIN_FAIL(unlock_out_clear, GNTST_general_error, ++ "transitive grant disallowed by policy\n"); ++ + if ( !allow_transitive ) + PIN_FAIL(unlock_out_clear, GNTST_general_error, + "transitive grant when transitivity not allowed\n"); +@@ -3156,7 +3196,10 @@ do_grant_table_op( + } + case GNTTABOP_set_version: + { +- rc = gnttab_set_version(guest_handle_cast(uop, gnttab_set_version_t)); ++ if ( opt_gnttab_max_version == 1 ) ++ rc = -ENOSYS; /* Behave as before set_version was introduced. */ ++ else ++ rc = gnttab_set_version(guest_handle_cast(uop, gnttab_set_version_t)); + break; + } + case GNTTABOP_get_status_frames: Property changes on: head/emulators/xen-kernel47/files/xsa226-4.7.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa227.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa227.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa227.patch (revision 475254) @@ -0,0 +1,52 @@ +From fa7268b94f8a0a7792ee12d5b8e23a60e52a3a84 Mon Sep 17 00:00:00 2001 +From: Andrew Cooper +Date: Tue, 20 Jun 2017 19:18:54 +0100 +Subject: [PATCH] x86/grant: Disallow misaligned PTEs + +Pagetable entries must be aligned to function correctly. Disallow attempts +from the guest to have a grant PTE created at a misaligned address, which +would result in corruption of the L1 table with largely-guest-controlled +values. + +This is XSA-227 + +Signed-off-by: Andrew Cooper +Reviewed-by: Jan Beulich +--- + xen/arch/x86/mm.c | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c +index 97b3b4b..00f517a 100644 +--- a/xen/arch/x86/mm.c ++++ b/xen/arch/x86/mm.c +@@ -3763,6 +3763,9 @@ static int create_grant_pte_mapping( + l1_pgentry_t ol1e; + struct domain *d = v->domain; + ++ if ( !IS_ALIGNED(pte_addr, sizeof(nl1e)) ) ++ return GNTST_general_error; ++ + adjust_guest_l1e(nl1e, d); + + gmfn = pte_addr >> PAGE_SHIFT; +@@ -3819,6 +3822,16 @@ static int destroy_grant_pte_mapping( + struct page_info *page; + l1_pgentry_t ol1e; + ++ /* ++ * addr comes from Xen's active_entry tracking so isn't guest controlled, ++ * but it had still better be PTE-aligned. ++ */ ++ if ( !IS_ALIGNED(addr, sizeof(ol1e)) ) ++ { ++ ASSERT_UNREACHABLE(); ++ return GNTST_general_error; ++ } ++ + gmfn = addr >> PAGE_SHIFT; + page = get_page_from_gfn(d, gmfn, NULL, P2M_ALLOC); + +-- +2.1.4 + Property changes on: head/emulators/xen-kernel47/files/xsa227.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa228-4.8.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa228-4.8.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa228-4.8.patch (revision 475254) @@ -0,0 +1,198 @@ +From cb91f4c43bd4158daa6561c73921a6455176f278 Mon Sep 17 00:00:00 2001 +From: Jan Beulich +Date: Mon, 31 Jul 2017 15:17:56 +0100 +Subject: [PATCH] gnttab: split maptrack lock to make it fulfill its purpose + again + +The way the lock is currently being used in get_maptrack_handle(), it +protects only the maptrack limit: The function acts on current's list +only, so races on list accesses are impossible even without the lock. + +Otoh list access races are possible between __get_maptrack_handle() and +put_maptrack_handle(), due to the invocation of the former for other +than current from steal_maptrack_handle(). Introduce a per-vCPU lock +for list accesses to become race free again. This lock will be +uncontended except when it becomes necessary to take the steal path, +i.e. in the common case there should be no meaningful performance +impact. + +When in get_maptrack_handle adds a stolen entry to a fresh, empty, +freelist, we think that there is probably no concurrency. However, +this is not a fast path and adding the locking there makes the code +clearly correct. + +Also, while we are here: the stolen maptrack_entry's tail pointer was +not properly set. Set it. + +This is XSA-228. + +Reported-by: Ian Jackson +Signed-off-by: Jan Beulich +Signed-off-by: Ian Jackson +--- + docs/misc/grant-tables.txt | 7 ++++++- + xen/common/grant_table.c | 30 ++++++++++++++++++++++++------ + xen/include/xen/grant_table.h | 2 +- + xen/include/xen/sched.h | 1 + + 4 files changed, 32 insertions(+), 8 deletions(-) + +diff --git a/docs/misc/grant-tables.txt b/docs/misc/grant-tables.txt +index 417ce2d..64da5cf 100644 +--- a/docs/misc/grant-tables.txt ++++ b/docs/misc/grant-tables.txt +@@ -87,7 +87,8 @@ is complete. + inconsistent grant table state such as current + version, partially initialized active table pages, + etc. +- grant_table->maptrack_lock : spinlock used to protect the maptrack free list ++ grant_table->maptrack_lock : spinlock used to protect the maptrack limit ++ v->maptrack_freelist_lock : spinlock used to protect the maptrack free list + active_grant_entry->lock : spinlock used to serialize modifications to + active entries + +@@ -102,6 +103,10 @@ is complete. + The maptrack free list is protected by its own spinlock. The maptrack + lock may be locked while holding the grant table lock. + ++ The maptrack_freelist_lock is an innermost lock. It may be locked ++ while holding other locks, but no other locks may be acquired within ++ it. ++ + Active entries are obtained by calling active_entry_acquire(gt, ref). + This function returns a pointer to the active entry after locking its + spinlock. The caller must hold the grant table read lock before +diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c +index f9654f1..593121c 100644 +--- a/xen/common/grant_table.c ++++ b/xen/common/grant_table.c +@@ -304,11 +304,16 @@ __get_maptrack_handle( + { + unsigned int head, next, prev_head; + ++ spin_lock(&v->maptrack_freelist_lock); ++ + do { + /* No maptrack pages allocated for this VCPU yet? */ + head = read_atomic(&v->maptrack_head); + if ( unlikely(head == MAPTRACK_TAIL) ) ++ { ++ spin_unlock(&v->maptrack_freelist_lock); + return -1; ++ } + + /* + * Always keep one entry in the free list to make it easier to +@@ -316,12 +321,17 @@ __get_maptrack_handle( + */ + next = read_atomic(&maptrack_entry(t, head).ref); + if ( unlikely(next == MAPTRACK_TAIL) ) ++ { ++ spin_unlock(&v->maptrack_freelist_lock); + return -1; ++ } + + prev_head = head; + head = cmpxchg(&v->maptrack_head, prev_head, next); + } while ( head != prev_head ); + ++ spin_unlock(&v->maptrack_freelist_lock); ++ + return head; + } + +@@ -380,6 +390,8 @@ put_maptrack_handle( + /* 2. Add entry to the tail of the list on the original VCPU. */ + v = currd->vcpu[maptrack_entry(t, handle).vcpu]; + ++ spin_lock(&v->maptrack_freelist_lock); ++ + cur_tail = read_atomic(&v->maptrack_tail); + do { + prev_tail = cur_tail; +@@ -388,6 +400,8 @@ put_maptrack_handle( + + /* 3. Update the old tail entry to point to the new entry. */ + write_atomic(&maptrack_entry(t, prev_tail).ref, handle); ++ ++ spin_unlock(&v->maptrack_freelist_lock); + } + + static inline int +@@ -411,10 +425,6 @@ get_maptrack_handle( + */ + if ( nr_maptrack_frames(lgt) >= max_maptrack_frames ) + { +- /* +- * Can drop the lock since no other VCPU can be adding a new +- * frame once they've run out. +- */ + spin_unlock(&lgt->maptrack_lock); + + /* +@@ -426,8 +436,12 @@ get_maptrack_handle( + handle = steal_maptrack_handle(lgt, curr); + if ( handle == -1 ) + return -1; ++ spin_lock(&curr->maptrack_freelist_lock); ++ maptrack_entry(lgt, handle).ref = MAPTRACK_TAIL; + curr->maptrack_tail = handle; +- write_atomic(&curr->maptrack_head, handle); ++ if ( curr->maptrack_head == MAPTRACK_TAIL ) ++ write_atomic(&curr->maptrack_head, handle); ++ spin_unlock(&curr->maptrack_freelist_lock); + } + return steal_maptrack_handle(lgt, curr); + } +@@ -460,12 +474,15 @@ get_maptrack_handle( + smp_wmb(); + lgt->maptrack_limit += MAPTRACK_PER_PAGE; + ++ spin_unlock(&lgt->maptrack_lock); ++ spin_lock(&curr->maptrack_freelist_lock); ++ + do { + new_mt[i - 1].ref = read_atomic(&curr->maptrack_head); + head = cmpxchg(&curr->maptrack_head, new_mt[i - 1].ref, handle + 1); + } while ( head != new_mt[i - 1].ref ); + +- spin_unlock(&lgt->maptrack_lock); ++ spin_unlock(&curr->maptrack_freelist_lock); + + return handle; + } +@@ -3474,6 +3491,7 @@ grant_table_destroy( + + void grant_table_init_vcpu(struct vcpu *v) + { ++ spin_lock_init(&v->maptrack_freelist_lock); + v->maptrack_head = MAPTRACK_TAIL; + v->maptrack_tail = MAPTRACK_TAIL; + } +diff --git a/xen/include/xen/grant_table.h b/xen/include/xen/grant_table.h +index 4e77899..100f2b3 100644 +--- a/xen/include/xen/grant_table.h ++++ b/xen/include/xen/grant_table.h +@@ -78,7 +78,7 @@ struct grant_table { + /* Mapping tracking table per vcpu. */ + struct grant_mapping **maptrack; + unsigned int maptrack_limit; +- /* Lock protecting the maptrack page list, head, and limit */ ++ /* Lock protecting the maptrack limit */ + spinlock_t maptrack_lock; + /* The defined versions are 1 and 2. Set to 0 if we don't know + what version to use yet. */ +diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h +index 1fbda87..ff0f38f 100644 +--- a/xen/include/xen/sched.h ++++ b/xen/include/xen/sched.h +@@ -223,6 +223,7 @@ struct vcpu + int controller_pause_count; + + /* Maptrack */ ++ spinlock_t maptrack_freelist_lock; + unsigned int maptrack_head; + unsigned int maptrack_tail; + +-- +2.1.4 + Property changes on: head/emulators/xen-kernel47/files/xsa228-4.8.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa230.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa230.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa230.patch (revision 475254) @@ -0,0 +1,38 @@ +From: Jan Beulich +Subject: gnttab: correct pin status fixup for copy + +Regardless of copy operations only setting GNTPIN_hst*, GNTPIN_dev* +also need to be taken into account when deciding whether to clear +_GTF_{read,writ}ing. At least for consistency with code elsewhere the +read part better doesn't use any mask at all. + +This is XSA-230. + +Signed-off-by: Jan Beulich +Reviewed-by: Andrew Cooper +diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c +index ae34547..9c9d33c 100644 +--- a/xen/common/grant_table.c ++++ b/xen/common/grant_table.c +@@ -2107,10 +2107,10 @@ __release_grant_for_copy( + static void __fixup_status_for_copy_pin(const struct active_grant_entry *act, + uint16_t *status) + { +- if ( !(act->pin & GNTPIN_hstw_mask) ) ++ if ( !(act->pin & (GNTPIN_hstw_mask | GNTPIN_devw_mask)) ) + gnttab_clear_flag(_GTF_writing, status); + +- if ( !(act->pin & GNTPIN_hstr_mask) ) ++ if ( !act->pin ) + gnttab_clear_flag(_GTF_reading, status); + } + +@@ -2318,7 +2318,7 @@ __acquire_grant_for_copy( + + unlock_out_clear: + if ( !(readonly) && +- !(act->pin & GNTPIN_hstw_mask) ) ++ !(act->pin & (GNTPIN_hstw_mask | GNTPIN_devw_mask)) ) + gnttab_clear_flag(_GTF_writing, status); + + if ( !act->pin ) Property changes on: head/emulators/xen-kernel47/files/xsa230.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/0001-IOMMU-handle-IOMMU-mapping-and-unmapping-failures.patch =================================================================== --- head/emulators/xen-kernel47/files/0001-IOMMU-handle-IOMMU-mapping-and-unmapping-failures.patch (nonexistent) +++ head/emulators/xen-kernel47/files/0001-IOMMU-handle-IOMMU-mapping-and-unmapping-failures.patch (revision 475254) @@ -0,0 +1,78 @@ +From 03f872b98f24e25cafb478b5d7c34e1eb18e1e4c Mon Sep 17 00:00:00 2001 +From: Quan Xu +Date: Fri, 2 Jun 2017 12:30:34 +0100 +Subject: [PATCH 1/4] IOMMU: handle IOMMU mapping and unmapping failures + +Treat IOMMU mapping and unmapping failures as a fatal to the DomU +If IOMMU mapping and unmapping failed, crash the DomU and propagate +the error up to the call trees. + +No spamming of the log can occur. For DomU, we avoid logging any +message for already dying domains. For Dom0, that'll still be more +verbose than we'd really like, but it at least wouldn't outright +flood the console. + +Signed-off-by: Quan Xu +Reviewed-by: Kevin Tian +Reviewed-by: Jan Beulich +--- + xen/drivers/passthrough/iommu.c | 30 ++++++++++++++++++++++++++++-- + 1 file changed, 28 insertions(+), 2 deletions(-) + +diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c +index 1a315ee..927966f 100644 +--- a/xen/drivers/passthrough/iommu.c ++++ b/xen/drivers/passthrough/iommu.c +@@ -239,21 +239,47 @@ int iommu_map_page(struct domain *d, unsigned long gfn, unsigned long mfn, + unsigned int flags) + { + const struct domain_iommu *hd = dom_iommu(d); ++ int rc; + + if ( !iommu_enabled || !hd->platform_ops ) + return 0; + +- return hd->platform_ops->map_page(d, gfn, mfn, flags); ++ rc = hd->platform_ops->map_page(d, gfn, mfn, flags); ++ if ( unlikely(rc) ) ++ { ++ if ( !d->is_shutting_down && printk_ratelimit() ) ++ printk(XENLOG_ERR ++ "d%d: IOMMU mapping gfn %#lx to mfn %#lx failed: %d\n", ++ d->domain_id, gfn, mfn, rc); ++ ++ if ( !is_hardware_domain(d) ) ++ domain_crash(d); ++ } ++ ++ return rc; + } + + int iommu_unmap_page(struct domain *d, unsigned long gfn) + { + const struct domain_iommu *hd = dom_iommu(d); ++ int rc; + + if ( !iommu_enabled || !hd->platform_ops ) + return 0; + +- return hd->platform_ops->unmap_page(d, gfn); ++ rc = hd->platform_ops->unmap_page(d, gfn); ++ if ( unlikely(rc) ) ++ { ++ if ( !d->is_shutting_down && printk_ratelimit() ) ++ printk(XENLOG_ERR ++ "d%d: IOMMU unmapping gfn %#lx failed: %d\n", ++ d->domain_id, gfn, rc); ++ ++ if ( !is_hardware_domain(d) ) ++ domain_crash(d); ++ } ++ ++ return rc; + } + + static void iommu_free_pagetables(unsigned long unused) +-- +2.1.4 + Property changes on: head/emulators/xen-kernel47/files/0001-IOMMU-handle-IOMMU-mapping-and-unmapping-failures.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/0001-gnttab-Fix-handling-of-dev_bus_addr-during-unmap.patch =================================================================== --- head/emulators/xen-kernel47/files/0001-gnttab-Fix-handling-of-dev_bus_addr-during-unmap.patch (nonexistent) +++ head/emulators/xen-kernel47/files/0001-gnttab-Fix-handling-of-dev_bus_addr-during-unmap.patch (revision 475254) @@ -0,0 +1,111 @@ +From fd97f5f5ba9375163c8d8771fe551bb4a6423b36 Mon Sep 17 00:00:00 2001 +From: George Dunlap +Date: Thu, 15 Jun 2017 16:24:02 +0100 +Subject: [PATCH 1/4] gnttab: Fix handling of dev_bus_addr during unmap + +If a grant has been mapped with the GNTTAB_device_map flag, calling +grant_unmap_ref() with dev_bus_addr set to zero should cause the +GNTTAB_device_map part of the mapping to be left alone. + +Unfortunately, at the moment, op->dev_bus_addr is implicitly checked +before clearing the map and adjusting the pin count, but only the bits +above 12; and it is not checked at all before dropping page +references. This means a guest can repeatedly make such a call to +cause the reference count to drop to zero, causing the page to be +freed and re-used, even though it's still mapped in its pagetables. + +To fix this, always check op->dev_bus_addr explicitly for being +non-zero, as well as op->flag & GNTMAP_device_map, before doing +operations on the device_map. + +While we're here, make the logic a bit cleaner: + +* Always initialize op->frame to zero and set it from act->frame, to reduce the +chance of untrusted input being used + +* Explicitly check the full dev_bus_addr against act->frame << + PAGE_SHIFT, rather than ignoring the lower 12 bits + +This is part of XSA-224. + +Reported-by: Jan Beulich +Signed-off-by: George Dunlap +Signed-off-by: Jan Beulich +--- + xen/common/grant_table.c | 23 +++++++++++------------ + 1 file changed, 11 insertions(+), 12 deletions(-) + +diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c +index c4d73af..69cbdb6 100644 +--- a/xen/common/grant_table.c ++++ b/xen/common/grant_table.c +@@ -1089,8 +1089,6 @@ __gnttab_unmap_common( + ld = current->domain; + lgt = ld->grant_table; + +- op->frame = (unsigned long)(op->dev_bus_addr >> PAGE_SHIFT); +- + if ( unlikely(op->handle >= lgt->maptrack_limit) ) + { + gdprintk(XENLOG_INFO, "Bad handle (%d).\n", op->handle); +@@ -1174,16 +1172,14 @@ __gnttab_unmap_common( + goto act_release_out; + } + +- if ( op->frame == 0 ) +- { +- op->frame = act->frame; +- } +- else ++ op->frame = act->frame; ++ ++ if ( op->dev_bus_addr ) + { +- if ( unlikely(op->frame != act->frame) ) ++ if ( unlikely(op->dev_bus_addr != pfn_to_paddr(act->frame)) ) + PIN_FAIL(act_release_out, GNTST_general_error, +- "Bad frame number doesn't match gntref. (%lx != %lx)\n", +- op->frame, act->frame); ++ "Bus address doesn't match gntref (%"PRIx64" != %"PRIpaddr")\n", ++ op->dev_bus_addr, pfn_to_paddr(act->frame)); + + map->flags &= ~GNTMAP_device_map; + } +@@ -1276,7 +1272,8 @@ __gnttab_unmap_common_complete(struct gnttab_unmap_common *op) + else + status = &status_entry(rgt, op->ref); + +- if ( unlikely(op->frame != act->frame) ) ++ if ( op->dev_bus_addr && ++ unlikely(op->dev_bus_addr != pfn_to_paddr(act->frame)) ) + { + /* + * Suggests that __gntab_unmap_common failed early and so +@@ -1287,7 +1284,7 @@ __gnttab_unmap_common_complete(struct gnttab_unmap_common *op) + + pg = mfn_to_page(op->frame); + +- if ( op->flags & GNTMAP_device_map ) ++ if ( op->dev_bus_addr && (op->flags & GNTMAP_device_map) ) + { + if ( !is_iomem_page(act->frame) ) + { +@@ -1358,6 +1355,7 @@ __gnttab_unmap_grant_ref( + /* Intialise these in case common contains old state */ + common->new_addr = 0; + common->rd = NULL; ++ common->frame = 0; + + __gnttab_unmap_common(common); + op->status = common->status; +@@ -1422,6 +1420,7 @@ __gnttab_unmap_and_replace( + /* Intialise these in case common contains old state */ + common->dev_bus_addr = 0; + common->rd = NULL; ++ common->frame = 0; + + __gnttab_unmap_common(common); + op->status = common->status; +-- +2.1.4 + Property changes on: head/emulators/xen-kernel47/files/0001-gnttab-Fix-handling-of-dev_bus_addr-during-unmap.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/0002-gnttab-fix-unmap-pin-accounting-race.patch =================================================================== --- head/emulators/xen-kernel47/files/0002-gnttab-fix-unmap-pin-accounting-race.patch (nonexistent) +++ head/emulators/xen-kernel47/files/0002-gnttab-fix-unmap-pin-accounting-race.patch (revision 475254) @@ -0,0 +1,102 @@ +From 2c146b4f763f47180a0effb8d8045b0ebb93652c Mon Sep 17 00:00:00 2001 +From: Jan Beulich +Date: Fri, 2 Jun 2017 12:22:42 +0100 +Subject: [PATCH 2/4] gnttab: fix unmap pin accounting race + +Once all {writable} mappings of a grant entry have been unmapped, the +hypervisor informs the guest that the grant entry has been released by +clearing the _GTF_{reading,writing} usage flags in the guest's grant +table as appropriate. + +Unfortunately, at the moment, the code that updates the accounting +happens in a different critical section than the one which updates the +usage flags; this means that under the right circumstances, there may be +a window in time after the hypervisor reported the grant as being free +during which the grant referee still had access to the page. + +Move the grant accounting code into the same critical section as the +reporting code to make sure this kind of race can't happen. + +This is part of XSA-218. + +Reported-by: Jann Horn +Signed-off-by: Jan Beulich +--- + xen/common/grant_table.c | 32 +++++++++++++++++--------------- + 1 file changed, 17 insertions(+), 15 deletions(-) + +diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c +index 8b22299..cfc483f 100644 +--- a/xen/common/grant_table.c ++++ b/xen/common/grant_table.c +@@ -1150,15 +1150,8 @@ __gnttab_unmap_common( + PIN_FAIL(act_release_out, GNTST_general_error, + "Bad frame number doesn't match gntref. (%lx != %lx)\n", + op->frame, act->frame); +- if ( op->flags & GNTMAP_device_map ) +- { +- ASSERT(act->pin & (GNTPIN_devw_mask | GNTPIN_devr_mask)); +- op->map->flags &= ~GNTMAP_device_map; +- if ( op->flags & GNTMAP_readonly ) +- act->pin -= GNTPIN_devr_inc; +- else +- act->pin -= GNTPIN_devw_inc; +- } ++ ++ op->map->flags &= ~GNTMAP_device_map; + } + + if ( (op->host_addr != 0) && (op->flags & GNTMAP_host_map) ) +@@ -1168,12 +1161,7 @@ __gnttab_unmap_common( + op->flags)) < 0 ) + goto act_release_out; + +- ASSERT(act->pin & (GNTPIN_hstw_mask | GNTPIN_hstr_mask)); + op->map->flags &= ~GNTMAP_host_map; +- if ( op->flags & GNTMAP_readonly ) +- act->pin -= GNTPIN_hstr_inc; +- else +- act->pin -= GNTPIN_hstw_inc; + } + + act_release_out: +@@ -1266,6 +1254,12 @@ __gnttab_unmap_common_complete(struct gnttab_unmap_common *op) + else + put_page_and_type(pg); + } ++ ++ ASSERT(act->pin & (GNTPIN_devw_mask | GNTPIN_devr_mask)); ++ if ( op->flags & GNTMAP_readonly ) ++ act->pin -= GNTPIN_devr_inc; ++ else ++ act->pin -= GNTPIN_devw_inc; + } + + if ( (op->host_addr != 0) && (op->flags & GNTMAP_host_map) ) +@@ -1274,7 +1268,9 @@ __gnttab_unmap_common_complete(struct gnttab_unmap_common *op) + { + /* + * Suggests that __gntab_unmap_common failed in +- * replace_grant_host_mapping() so nothing further to do ++ * replace_grant_host_mapping() or IOMMU handling, so nothing ++ * further to do (short of re-establishing the mapping in the ++ * latter case). + */ + goto act_release_out; + } +@@ -1285,6 +1281,12 @@ __gnttab_unmap_common_complete(struct gnttab_unmap_common *op) + put_page_type(pg); + put_page(pg); + } ++ ++ ASSERT(act->pin & (GNTPIN_hstw_mask | GNTPIN_hstr_mask)); ++ if ( op->flags & GNTMAP_readonly ) ++ act->pin -= GNTPIN_hstr_inc; ++ else ++ act->pin -= GNTPIN_hstw_inc; + } + + if ( (op->map->flags & (GNTMAP_device_map|GNTMAP_host_map)) == 0 ) +-- +2.1.4 + Property changes on: head/emulators/xen-kernel47/files/0002-gnttab-fix-unmap-pin-accounting-race.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/0002-gnttab-never-create-host-mapping-unless-asked-to.patch =================================================================== --- head/emulators/xen-kernel47/files/0002-gnttab-never-create-host-mapping-unless-asked-to.patch (nonexistent) +++ head/emulators/xen-kernel47/files/0002-gnttab-never-create-host-mapping-unless-asked-to.patch (revision 475254) @@ -0,0 +1,42 @@ +From 8894a0c20d920aada305aade0591c1e77167b1db Mon Sep 17 00:00:00 2001 +From: Jan Beulich +Date: Fri, 2 Jun 2017 15:21:27 +0100 +Subject: [PATCH 2/4] gnttab: never create host mapping unless asked to + +We shouldn't create a host mapping unless asked to even in the case of +mapping a granted MMIO page. In particular the mapping wouldn't be torn +down when processing the matching unmap request. + +This is part of XSA-224. + +Reported-by: Jan Beulich +Signed-off-by: Jan Beulich +--- + xen/common/grant_table.c | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c +index 69cbdb6..452538e 100644 +--- a/xen/common/grant_table.c ++++ b/xen/common/grant_table.c +@@ -911,10 +911,13 @@ __gnttab_map_grant_ref( + goto undo_out; + } + +- rc = create_grant_host_mapping( +- op->host_addr, frame, op->flags, cache_flags); +- if ( rc != GNTST_okay ) +- goto undo_out; ++ if ( op->flags & GNTMAP_host_map ) ++ { ++ rc = create_grant_host_mapping(op->host_addr, frame, op->flags, ++ cache_flags); ++ if ( rc != GNTST_okay ) ++ goto undo_out; ++ } + } + else if ( owner == rd || owner == dom_cow ) + { +-- +2.1.4 + Property changes on: head/emulators/xen-kernel47/files/0002-gnttab-never-create-host-mapping-unless-asked-to.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/0003-gnttab-Avoid-potential-double-put-of-maptrack-entry.patch =================================================================== --- head/emulators/xen-kernel47/files/0003-gnttab-Avoid-potential-double-put-of-maptrack-entry.patch (nonexistent) +++ head/emulators/xen-kernel47/files/0003-gnttab-Avoid-potential-double-put-of-maptrack-entry.patch (revision 475254) @@ -0,0 +1,232 @@ +From 39b704785a8d330c02e8e2d2368c80dbaf679bc0 Mon Sep 17 00:00:00 2001 +From: George Dunlap +Date: Thu, 15 Jun 2017 12:05:14 +0100 +Subject: [PATCH 3/4] gnttab: Avoid potential double-put of maptrack entry + +Each grant mapping for a particular domain is tracked by an in-Xen +"maptrack" entry. This entry is is referenced by a "handle", which is +given to the guest when it calls gnttab_map_grant_ref(). + +There are two types of mapping a particular handle can refer to: +GNTMAP_host_map and GNTMAP_device_map. A given +gnttab_unmap_grant_ref() call can remove either only one or both of +these entries. When a particular handle has no entries left, it must +be freed. + +gnttab_unmap_grant_ref() loops through its grant unmap request list +twice. It first removes entries from any host pagetables and (if +appropraite) iommus; then it does a single domain TLB flush; then it +does the clean-up, including telling the granter that entries are no +longer being used (if appropriate). + +At the moment, it's during the first pass that the maptrack flags are +cleared, but the second pass that the maptrack entry is freed. + +Unfortunately this allows the following race, which results in a +double-free: + + A: (pass 1) clear host_map + B: (pass 1) clear device_map + A: (pass 2) See that maptrack entry has no mappings, free it + B: (pass 2) See that maptrack entry has no mappings, free it # + +Unfortunately, unlike the active entry pinning update, we can't simply +move the maptrack flag changes to the second half, because the +maptrack flags are used to determine if iommu entries need to be +added: a domain's iommu must never have fewer permissions than the +maptrack flags indicate, or a subsequent map_grant_ref() might fail to +add the necessary iommu entries. + +Instead, free the maptrack entry in the first pass if there are no +further mappings. + +This is part of XSA-218. + +Reported-by: Jan Beulich +Signed-off-by: George Dunlap +Signed-off-by: Jan Beulich +--- + xen/common/grant_table.c | 79 +++++++++++++++++++++++++++++++++--------------- + 1 file changed, 54 insertions(+), 25 deletions(-) + +diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c +index cfc483f..81a1a8b 100644 +--- a/xen/common/grant_table.c ++++ b/xen/common/grant_table.c +@@ -98,8 +98,8 @@ struct gnttab_unmap_common { + /* Shared state beteen *_unmap and *_unmap_complete */ + u16 flags; + unsigned long frame; +- struct grant_mapping *map; + struct domain *rd; ++ grant_ref_t ref; + }; + + /* Number of unmap operations that are done between each tlb flush */ +@@ -1079,6 +1079,8 @@ __gnttab_unmap_common( + struct grant_table *lgt, *rgt; + struct active_grant_entry *act; + s16 rc = 0; ++ struct grant_mapping *map; ++ bool_t put_handle = 0; + + ld = current->domain; + lgt = ld->grant_table; +@@ -1092,11 +1094,11 @@ __gnttab_unmap_common( + return; + } + +- op->map = &maptrack_entry(lgt, op->handle); ++ map = &maptrack_entry(lgt, op->handle); + + grant_read_lock(lgt); + +- if ( unlikely(!read_atomic(&op->map->flags)) ) ++ if ( unlikely(!read_atomic(&map->flags)) ) + { + grant_read_unlock(lgt); + gdprintk(XENLOG_INFO, "Zero flags for handle (%d).\n", op->handle); +@@ -1104,7 +1106,7 @@ __gnttab_unmap_common( + return; + } + +- dom = op->map->domid; ++ dom = map->domid; + grant_read_unlock(lgt); + + if ( unlikely((rd = rcu_lock_domain_by_id(dom)) == NULL) ) +@@ -1129,16 +1131,43 @@ __gnttab_unmap_common( + + grant_read_lock(rgt); + +- op->flags = read_atomic(&op->map->flags); +- if ( unlikely(!op->flags) || unlikely(op->map->domid != dom) ) ++ op->rd = rd; ++ op->ref = map->ref; ++ ++ /* ++ * We can't assume there was no racing unmap for this maptrack entry, ++ * and hence we can't assume map->ref is valid for rd. While the checks ++ * below (with the active entry lock held) will reject any such racing ++ * requests, we still need to make sure we don't attempt to acquire an ++ * invalid lock. ++ */ ++ smp_rmb(); ++ if ( unlikely(op->ref >= nr_grant_entries(rgt)) ) + { +- gdprintk(XENLOG_WARNING, "Unstable handle %u\n", op->handle); ++ gdprintk(XENLOG_WARNING, "Unstable handle %#x\n", op->handle); + rc = GNTST_bad_handle; +- goto unmap_out; ++ goto unlock_out; + } + +- op->rd = rd; +- act = active_entry_acquire(rgt, op->map->ref); ++ act = active_entry_acquire(rgt, op->ref); ++ ++ /* ++ * Note that we (ab)use the active entry lock here to protect against ++ * multiple unmaps of the same mapping here. We don't want to hold lgt's ++ * lock, and we only hold rgt's lock for reading (but the latter wouldn't ++ * be the right one anyway). Hence the easiest is to rely on a lock we ++ * hold anyway; see docs/misc/grant-tables.txt's "Locking" section. ++ */ ++ ++ op->flags = read_atomic(&map->flags); ++ smp_rmb(); ++ if ( unlikely(!op->flags) || unlikely(map->domid != dom) || ++ unlikely(map->ref != op->ref) ) ++ { ++ gdprintk(XENLOG_WARNING, "Unstable handle %#x\n", op->handle); ++ rc = GNTST_bad_handle; ++ goto act_release_out; ++ } + + if ( op->frame == 0 ) + { +@@ -1151,7 +1180,7 @@ __gnttab_unmap_common( + "Bad frame number doesn't match gntref. (%lx != %lx)\n", + op->frame, act->frame); + +- op->map->flags &= ~GNTMAP_device_map; ++ map->flags &= ~GNTMAP_device_map; + } + + if ( (op->host_addr != 0) && (op->flags & GNTMAP_host_map) ) +@@ -1161,14 +1190,23 @@ __gnttab_unmap_common( + op->flags)) < 0 ) + goto act_release_out; + +- op->map->flags &= ~GNTMAP_host_map; ++ map->flags &= ~GNTMAP_host_map; ++ } ++ ++ if ( !(map->flags & (GNTMAP_device_map|GNTMAP_host_map)) ) ++ { ++ map->flags = 0; ++ put_handle = 1; + } + + act_release_out: + active_entry_release(act); +- unmap_out: ++ unlock_out: + grant_read_unlock(rgt); + ++ if ( put_handle ) ++ put_maptrack_handle(lgt, op->handle); ++ + if ( rc == GNTST_okay && gnttab_need_iommu_mapping(ld) ) + { + unsigned int kind; +@@ -1205,7 +1243,6 @@ __gnttab_unmap_common_complete(struct gnttab_unmap_common *op) + grant_entry_header_t *sha; + struct page_info *pg; + uint16_t *status; +- bool_t put_handle = 0; + + if ( rd == NULL ) + { +@@ -1226,13 +1263,13 @@ __gnttab_unmap_common_complete(struct gnttab_unmap_common *op) + if ( rgt->gt_version == 0 ) + goto unlock_out; + +- act = active_entry_acquire(rgt, op->map->ref); +- sha = shared_entry_header(rgt, op->map->ref); ++ act = active_entry_acquire(rgt, op->ref); ++ sha = shared_entry_header(rgt, op->ref); + + if ( rgt->gt_version == 1 ) + status = &sha->flags; + else +- status = &status_entry(rgt, op->map->ref); ++ status = &status_entry(rgt, op->ref); + + if ( unlikely(op->frame != act->frame) ) + { +@@ -1289,9 +1326,6 @@ __gnttab_unmap_common_complete(struct gnttab_unmap_common *op) + act->pin -= GNTPIN_hstw_inc; + } + +- if ( (op->map->flags & (GNTMAP_device_map|GNTMAP_host_map)) == 0 ) +- put_handle = 1; +- + if ( ((act->pin & (GNTPIN_devw_mask|GNTPIN_hstw_mask)) == 0) && + !(op->flags & GNTMAP_readonly) ) + gnttab_clear_flag(_GTF_writing, status); +@@ -1304,11 +1338,6 @@ __gnttab_unmap_common_complete(struct gnttab_unmap_common *op) + unlock_out: + grant_read_unlock(rgt); + +- if ( put_handle ) +- { +- op->map->flags = 0; +- put_maptrack_handle(ld->grant_table, op->handle); +- } + rcu_unlock_domain(rd); + } + +-- +2.1.4 + Property changes on: head/emulators/xen-kernel47/files/0003-gnttab-Avoid-potential-double-put-of-maptrack-entry.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/0003-gnttab-correct-logic-to-get-page-references-during-m.patch =================================================================== --- head/emulators/xen-kernel47/files/0003-gnttab-correct-logic-to-get-page-references-during-m.patch (nonexistent) +++ head/emulators/xen-kernel47/files/0003-gnttab-correct-logic-to-get-page-references-during-m.patch (revision 475254) @@ -0,0 +1,186 @@ +From 5d491e3cf32ff03552db9d66e842964fec06dcd4 Mon Sep 17 00:00:00 2001 +From: George Dunlap +Date: Fri, 2 Jun 2017 15:21:27 +0100 +Subject: [PATCH 3/4] gnttab: correct logic to get page references during map + requests + +The rules for reference counting are somewhat complicated: + +* Each of GNTTAB_host_map and GNTTAB_device_map need their own +reference count + +* If the mapping is writeable: + - GNTTAB_host_map needs a type count under only some conditions + - GNTTAB_device_map always needs a type count + +If the mapping succeeds, we need to keep all of these; if the mapping +fails, we need to release whatever references we have acquired so far. + +Additionally, the code that does a lot of this calculation "inherits" +a reference as part of the process of finding out who the owner is. + +Finally, if the grant is mapped as writeable (without the +GNTMAP_readonly flag), but the hypervisor cannot grab a +PGT_writeable_page type, the entire operation should fail. + +Unfortunately, the current code has several logic holes: + +* If a grant is mapped only GNTTAB_device_map, and with a writeable + mapping, but in conditions where a *host* type count is not + necessary, the code will fail to grab the necessary type count. + +* If a grant is mapped both GNTTAB_device_map and GNTTAB_host_map, + with a writeable mapping, in conditions where the host type count is + not necessary, *and* where the page cannot be changed to type + PGT_writeable, the condition will not be detected. + +In both cases, this means that on success, the type count will be +erroneously reduced when the grant is unmapped. In the second case, +the type count will be erroneously reduced on the failure path as +well. (In the first case the failure path logic has the same hole +as the reference grabbing logic.) + +Additionally, the return value of get_page() is not checked; but this +may fail even if the first get_page() succeeded due to a reference +counting overflow. + +First of all, simplify the restoration logic by explicitly counting +the reference and type references acquired. + +Consider each mapping type separately, explicitly marking the +'incoming' reference as used so we know when we need to grab a second +one. + +Finally, always check the return value of get_page[_type]() and go to +the failure path if appropriate. + +This is part of XSA-224. + +Reported-by: Jan Beulich +Signed-off-by: George Dunlap +Signed-off-by: Jan Beulich +--- + xen/common/grant_table.c | 58 +++++++++++++++++++++++++++--------------------- + 1 file changed, 33 insertions(+), 25 deletions(-) + +diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c +index 452538e..5e92e2c 100644 +--- a/xen/common/grant_table.c ++++ b/xen/common/grant_table.c +@@ -758,12 +758,12 @@ __gnttab_map_grant_ref( + struct grant_table *lgt, *rgt; + struct vcpu *led; + int handle; +- unsigned long frame = 0, nr_gets = 0; ++ unsigned long frame = 0; + struct page_info *pg = NULL; + int rc = GNTST_okay; + u32 old_pin; + u32 act_pin; +- unsigned int cache_flags; ++ unsigned int cache_flags, refcnt = 0, typecnt = 0; + struct active_grant_entry *act = NULL; + struct grant_mapping *mt; + grant_entry_header_t *shah; +@@ -889,11 +889,17 @@ __gnttab_map_grant_ref( + else + owner = page_get_owner(pg); + ++ if ( owner ) ++ refcnt++; ++ + if ( !pg || (owner == dom_io) ) + { + /* Only needed the reference to confirm dom_io ownership. */ + if ( pg ) ++ { + put_page(pg); ++ refcnt--; ++ } + + if ( paging_mode_external(ld) ) + { +@@ -921,27 +927,38 @@ __gnttab_map_grant_ref( + } + else if ( owner == rd || owner == dom_cow ) + { +- if ( gnttab_host_mapping_get_page_type(op, ld, rd) ) ++ if ( (op->flags & GNTMAP_device_map) && !(op->flags & GNTMAP_readonly) ) + { + if ( (owner == dom_cow) || + !get_page_type(pg, PGT_writable_page) ) + goto could_not_pin; ++ typecnt++; + } + +- nr_gets++; + if ( op->flags & GNTMAP_host_map ) + { +- rc = create_grant_host_mapping(op->host_addr, frame, op->flags, 0); +- if ( rc != GNTST_okay ) +- goto undo_out; +- ++ /* ++ * Only need to grab another reference if device_map claimed ++ * the other one. ++ */ + if ( op->flags & GNTMAP_device_map ) + { +- nr_gets++; +- (void)get_page(pg, rd); +- if ( !(op->flags & GNTMAP_readonly) ) +- get_page_type(pg, PGT_writable_page); ++ if ( !get_page(pg, rd) ) ++ goto could_not_pin; ++ refcnt++; ++ } ++ ++ if ( gnttab_host_mapping_get_page_type(op, ld, rd) ) ++ { ++ if ( (owner == dom_cow) || ++ !get_page_type(pg, PGT_writable_page) ) ++ goto could_not_pin; ++ typecnt++; + } ++ ++ rc = create_grant_host_mapping(op->host_addr, frame, op->flags, 0); ++ if ( rc != GNTST_okay ) ++ goto undo_out; + } + } + else +@@ -950,8 +967,6 @@ __gnttab_map_grant_ref( + if ( !rd->is_dying ) + gdprintk(XENLOG_WARNING, "Could not pin grant frame %lx\n", + frame); +- if ( owner != NULL ) +- put_page(pg); + rc = GNTST_general_error; + goto undo_out; + } +@@ -1014,18 +1029,11 @@ __gnttab_map_grant_ref( + return; + + undo_out: +- if ( nr_gets > 1 ) +- { +- if ( !(op->flags & GNTMAP_readonly) ) +- put_page_type(pg); +- put_page(pg); +- } +- if ( nr_gets > 0 ) +- { +- if ( gnttab_host_mapping_get_page_type(op, ld, rd) ) +- put_page_type(pg); ++ while ( typecnt-- ) ++ put_page_type(pg); ++ ++ while ( refcnt-- ) + put_page(pg); +- } + + grant_read_lock(rgt); + +-- +2.1.4 + Property changes on: head/emulators/xen-kernel47/files/0003-gnttab-correct-logic-to-get-page-references-during-m.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/0004-gnttab-__gnttab_unmap_common_complete-is-all-or-noth.patch =================================================================== --- head/emulators/xen-kernel47/files/0004-gnttab-__gnttab_unmap_common_complete-is-all-or-noth.patch (nonexistent) +++ head/emulators/xen-kernel47/files/0004-gnttab-__gnttab_unmap_common_complete-is-all-or-noth.patch (revision 475254) @@ -0,0 +1,319 @@ +From 3ad26b95cd9bacedad5ba503515cf6e618162be1 Mon Sep 17 00:00:00 2001 +From: Jan Beulich +Date: Thu, 15 Jun 2017 16:25:27 +0100 +Subject: [PATCH 4/4] gnttab: __gnttab_unmap_common_complete() is + all-or-nothing + +All failures have to be detected in __gnttab_unmap_common(), the +completion function must not skip part of its processing. In particular +the GNTMAP_device_map related putting of page references and adjustment +of pin count must not occur if __gnttab_unmap_common() signaled an +error. Furthermore the function must not make adjustments to global +state (here: clearing GNTTAB_device_map) before all possibly failing +operations have been performed. + +There's one exception for IOMMU related failures: As IOMMU manipulation +occurs after GNTMAP_*_map have been cleared already, the related page +reference and pin count adjustments need to be done nevertheless. A +fundamental requirement for the correctness of this is that +iommu_{,un}map_page() crash any affected DomU in case of failure. + +The version check appears to be pointless (or could perhaps be a +BUG_ON() or ASSERT()), but for the moment also move it. + +This is part of XSA-224. + +Reported-by: Jan Beulich +Signed-off-by: Jan Beulich +--- + xen/common/grant_table.c | 108 ++++++++++++++++++-------------------- + xen/include/asm-arm/grant_table.h | 2 +- + xen/include/asm-x86/grant_table.h | 5 +- + 3 files changed, 55 insertions(+), 60 deletions(-) + +diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c +index 5e92e2c..025aad0 100644 +--- a/xen/common/grant_table.c ++++ b/xen/common/grant_table.c +@@ -96,7 +96,7 @@ struct gnttab_unmap_common { + int16_t status; + + /* Shared state beteen *_unmap and *_unmap_complete */ +- u16 flags; ++ u16 done; + unsigned long frame; + struct domain *rd; + grant_ref_t ref; +@@ -948,7 +948,8 @@ __gnttab_map_grant_ref( + refcnt++; + } + +- if ( gnttab_host_mapping_get_page_type(op, ld, rd) ) ++ if ( gnttab_host_mapping_get_page_type(op->flags & GNTMAP_readonly, ++ ld, rd) ) + { + if ( (owner == dom_cow) || + !get_page_type(pg, PGT_writable_page) ) +@@ -1095,6 +1096,7 @@ __gnttab_unmap_common( + struct active_grant_entry *act; + s16 rc = 0; + struct grant_mapping *map; ++ unsigned int flags; + bool_t put_handle = 0; + + ld = current->domain; +@@ -1145,6 +1147,20 @@ __gnttab_unmap_common( + + grant_read_lock(rgt); + ++ if ( rgt->gt_version == 0 ) ++ { ++ /* ++ * This ought to be impossible, as such a mapping should not have ++ * been established (see the nr_grant_entries(rgt) bounds check in ++ * __gnttab_map_grant_ref()). Doing this check only in ++ * __gnttab_unmap_common_complete() - as it used to be done - would, ++ * however, be too late. ++ */ ++ rc = GNTST_bad_gntref; ++ flags = 0; ++ goto unlock_out; ++ } ++ + op->rd = rd; + op->ref = map->ref; + +@@ -1160,6 +1176,7 @@ __gnttab_unmap_common( + { + gdprintk(XENLOG_WARNING, "Unstable handle %#x\n", op->handle); + rc = GNTST_bad_handle; ++ flags = 0; + goto unlock_out; + } + +@@ -1173,9 +1190,9 @@ __gnttab_unmap_common( + * hold anyway; see docs/misc/grant-tables.txt's "Locking" section. + */ + +- op->flags = read_atomic(&map->flags); ++ flags = read_atomic(&map->flags); + smp_rmb(); +- if ( unlikely(!op->flags) || unlikely(map->domid != dom) || ++ if ( unlikely(!flags) || unlikely(map->domid != dom) || + unlikely(map->ref != op->ref) ) + { + gdprintk(XENLOG_WARNING, "Unstable handle %#x\n", op->handle); +@@ -1185,24 +1202,27 @@ __gnttab_unmap_common( + + op->frame = act->frame; + +- if ( op->dev_bus_addr ) +- { +- if ( unlikely(op->dev_bus_addr != pfn_to_paddr(act->frame)) ) +- PIN_FAIL(act_release_out, GNTST_general_error, +- "Bus address doesn't match gntref (%"PRIx64" != %"PRIpaddr")\n", +- op->dev_bus_addr, pfn_to_paddr(act->frame)); +- +- map->flags &= ~GNTMAP_device_map; +- } ++ if ( op->dev_bus_addr && ++ unlikely(op->dev_bus_addr != pfn_to_paddr(act->frame)) ) ++ PIN_FAIL(act_release_out, GNTST_general_error, ++ "Bus address doesn't match gntref (%"PRIx64" != %"PRIpaddr")\n", ++ op->dev_bus_addr, pfn_to_paddr(act->frame)); + +- if ( (op->host_addr != 0) && (op->flags & GNTMAP_host_map) ) ++ if ( op->host_addr && (flags & GNTMAP_host_map) ) + { + if ( (rc = replace_grant_host_mapping(op->host_addr, + op->frame, op->new_addr, +- op->flags)) < 0 ) ++ flags)) < 0 ) + goto act_release_out; + + map->flags &= ~GNTMAP_host_map; ++ op->done |= GNTMAP_host_map | (flags & GNTMAP_readonly); ++ } ++ ++ if ( op->dev_bus_addr && (flags & GNTMAP_device_map) ) ++ { ++ map->flags &= ~GNTMAP_device_map; ++ op->done |= GNTMAP_device_map | (flags & GNTMAP_readonly); + } + + if ( !(map->flags & (GNTMAP_device_map|GNTMAP_host_map)) ) +@@ -1239,7 +1259,7 @@ __gnttab_unmap_common( + } + + /* If just unmapped a writable mapping, mark as dirtied */ +- if ( rc == GNTST_okay && !(op->flags & GNTMAP_readonly) ) ++ if ( rc == GNTST_okay && !(flags & GNTMAP_readonly) ) + gnttab_mark_dirty(rd, op->frame); + + op->status = rc; +@@ -1256,13 +1276,9 @@ __gnttab_unmap_common_complete(struct gnttab_unmap_common *op) + struct page_info *pg; + uint16_t *status; + +- if ( rd == NULL ) ++ if ( !op->done ) + { +- /* +- * Suggests that __gntab_unmap_common failed in +- * rcu_lock_domain_by_id() or earlier, and so we have nothing +- * to complete +- */ ++ /* __gntab_unmap_common() didn't do anything - nothing to complete. */ + return; + } + +@@ -1272,8 +1288,6 @@ __gnttab_unmap_common_complete(struct gnttab_unmap_common *op) + rgt = rd->grant_table; + + grant_read_lock(rgt); +- if ( rgt->gt_version == 0 ) +- goto unlock_out; + + act = active_entry_acquire(rgt, op->ref); + sha = shared_entry_header(rgt, op->ref); +@@ -1283,72 +1297,50 @@ __gnttab_unmap_common_complete(struct gnttab_unmap_common *op) + else + status = &status_entry(rgt, op->ref); + +- if ( op->dev_bus_addr && +- unlikely(op->dev_bus_addr != pfn_to_paddr(act->frame)) ) +- { +- /* +- * Suggests that __gntab_unmap_common failed early and so +- * nothing further to do +- */ +- goto act_release_out; +- } +- + pg = mfn_to_page(op->frame); + +- if ( op->dev_bus_addr && (op->flags & GNTMAP_device_map) ) ++ if ( op->done & GNTMAP_device_map ) + { + if ( !is_iomem_page(act->frame) ) + { +- if ( op->flags & GNTMAP_readonly ) ++ if ( op->done & GNTMAP_readonly ) + put_page(pg); + else + put_page_and_type(pg); + } + + ASSERT(act->pin & (GNTPIN_devw_mask | GNTPIN_devr_mask)); +- if ( op->flags & GNTMAP_readonly ) ++ if ( op->done & GNTMAP_readonly ) + act->pin -= GNTPIN_devr_inc; + else + act->pin -= GNTPIN_devw_inc; + } + +- if ( (op->host_addr != 0) && (op->flags & GNTMAP_host_map) ) ++ if ( op->done & GNTMAP_host_map ) + { +- if ( op->status != 0 ) ++ if ( !is_iomem_page(op->frame) ) + { +- /* +- * Suggests that __gntab_unmap_common failed in +- * replace_grant_host_mapping() or IOMMU handling, so nothing +- * further to do (short of re-establishing the mapping in the +- * latter case). +- */ +- goto act_release_out; +- } +- +- if ( !is_iomem_page(op->frame) ) +- { +- if ( gnttab_host_mapping_get_page_type(op, ld, rd) ) ++ if ( gnttab_host_mapping_get_page_type(op->done & GNTMAP_readonly, ++ ld, rd) ) + put_page_type(pg); + put_page(pg); + } + + ASSERT(act->pin & (GNTPIN_hstw_mask | GNTPIN_hstr_mask)); +- if ( op->flags & GNTMAP_readonly ) ++ if ( op->done & GNTMAP_readonly ) + act->pin -= GNTPIN_hstr_inc; + else + act->pin -= GNTPIN_hstw_inc; + } + + if ( ((act->pin & (GNTPIN_devw_mask|GNTPIN_hstw_mask)) == 0) && +- !(op->flags & GNTMAP_readonly) ) ++ !(op->done & GNTMAP_readonly) ) + gnttab_clear_flag(_GTF_writing, status); + + if ( act->pin == 0 ) + gnttab_clear_flag(_GTF_reading, status); + +- act_release_out: + active_entry_release(act); +- unlock_out: + grant_read_unlock(rgt); + + rcu_unlock_domain(rd); +@@ -1364,6 +1356,7 @@ __gnttab_unmap_grant_ref( + common->handle = op->handle; + + /* Intialise these in case common contains old state */ ++ common->done = 0; + common->new_addr = 0; + common->rd = NULL; + common->frame = 0; +@@ -1429,6 +1422,7 @@ __gnttab_unmap_and_replace( + common->handle = op->handle; + + /* Intialise these in case common contains old state */ ++ common->done = 0; + common->dev_bus_addr = 0; + common->rd = NULL; + common->frame = 0; +@@ -3389,7 +3383,9 @@ gnttab_release_mappings( + if ( gnttab_release_host_mappings(d) && + !is_iomem_page(act->frame) ) + { +- if ( gnttab_host_mapping_get_page_type(map, d, rd) ) ++ if ( gnttab_host_mapping_get_page_type((map->flags & ++ GNTMAP_readonly), ++ d, rd) ) + put_page_type(pg); + put_page(pg); + } +diff --git a/xen/include/asm-arm/grant_table.h b/xen/include/asm-arm/grant_table.h +index 5e076cc..d76c7c7 100644 +--- a/xen/include/asm-arm/grant_table.h ++++ b/xen/include/asm-arm/grant_table.h +@@ -9,7 +9,7 @@ void gnttab_clear_flag(unsigned long nr, uint16_t *addr); + int create_grant_host_mapping(unsigned long gpaddr, + unsigned long mfn, unsigned int flags, unsigned int + cache_flags); +-#define gnttab_host_mapping_get_page_type(op, d, rd) (0) ++#define gnttab_host_mapping_get_page_type(ro, ld, rd) (0) + int replace_grant_host_mapping(unsigned long gpaddr, unsigned long mfn, + unsigned long new_gpaddr, unsigned int flags); + void gnttab_mark_dirty(struct domain *d, unsigned long l); +diff --git a/xen/include/asm-x86/grant_table.h b/xen/include/asm-x86/grant_table.h +index 8c9bbcf..9ca631c 100644 +--- a/xen/include/asm-x86/grant_table.h ++++ b/xen/include/asm-x86/grant_table.h +@@ -58,9 +58,8 @@ static inline void gnttab_clear_flag(unsigned int nr, uint16_t *st) + } + + /* Foreign mappings of HHVM-guest pages do not modify the type count. */ +-#define gnttab_host_mapping_get_page_type(op, ld, rd) \ +- (!((op)->flags & GNTMAP_readonly) && \ +- (((ld) == (rd)) || !paging_mode_external(rd))) ++#define gnttab_host_mapping_get_page_type(ro, ld, rd) \ ++ (!(ro) && (((ld) == (rd)) || !paging_mode_external(rd))) + + /* Done implicitly when page tables are destroyed. */ + #define gnttab_release_host_mappings(domain) ( paging_mode_external(domain) ) +-- +2.1.4 + Property changes on: head/emulators/xen-kernel47/files/0004-gnttab-__gnttab_unmap_common_complete-is-all-or-noth.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/0004-gnttab-correct-maptrack-table-accesses.patch =================================================================== --- head/emulators/xen-kernel47/files/0004-gnttab-correct-maptrack-table-accesses.patch (nonexistent) +++ head/emulators/xen-kernel47/files/0004-gnttab-correct-maptrack-table-accesses.patch (revision 475254) @@ -0,0 +1,84 @@ +From bb765f7863e5d19eebcfb29c117e2909bce241e7 Mon Sep 17 00:00:00 2001 +From: Jan Beulich +Date: Thu, 15 Jun 2017 12:05:29 +0100 +Subject: [PATCH 4/4] gnttab: correct maptrack table accesses + +In order to observe a consistent (limit,pointer-table) pair, the reader +needs to either hold the maptrack lock (in line with documentation) or +both sides need to order their accesses suitably (the writer side +barrier was removed by commit dff515dfea ["gnttab: use per-VCPU +maptrack free lists"], and a read side barrier has never been there). + +Make the writer publish a new table page before limit (for bounds +checks to work), and new list head last (for racing maptrack_entry() +invocations to work). At the same time add read barriers to lockless +readers. + +Additionally get_maptrack_handle() must not assume ->maptrack_head to +not change behind its back: Another handle may be put (updating only +->maptrack_tail) and then got or stolen (updating ->maptrack_head). + +This is part of XSA-218. + +Signed-off-by: Jan Beulich +Reviewed-by: George Dunlap +--- + xen/common/grant_table.c | 13 +++++++++---- + 1 file changed, 9 insertions(+), 4 deletions(-) + +diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c +index 81a1a8b..c4d73af 100644 +--- a/xen/common/grant_table.c ++++ b/xen/common/grant_table.c +@@ -395,7 +395,7 @@ get_maptrack_handle( + struct grant_table *lgt) + { + struct vcpu *curr = current; +- int i; ++ unsigned int i, head; + grant_handle_t handle; + struct grant_mapping *new_mt; + +@@ -451,17 +451,20 @@ get_maptrack_handle( + new_mt[i].ref = handle + i + 1; + new_mt[i].vcpu = curr->vcpu_id; + } +- new_mt[i - 1].ref = curr->maptrack_head; + + /* Set tail directly if this is the first page for this VCPU. */ + if ( curr->maptrack_tail == MAPTRACK_TAIL ) + curr->maptrack_tail = handle + MAPTRACK_PER_PAGE - 1; + +- write_atomic(&curr->maptrack_head, handle + 1); +- + lgt->maptrack[nr_maptrack_frames(lgt)] = new_mt; ++ smp_wmb(); + lgt->maptrack_limit += MAPTRACK_PER_PAGE; + ++ do { ++ new_mt[i - 1].ref = read_atomic(&curr->maptrack_head); ++ head = cmpxchg(&curr->maptrack_head, new_mt[i - 1].ref, handle + 1); ++ } while ( head != new_mt[i - 1].ref ); ++ + spin_unlock(&lgt->maptrack_lock); + + return handle; +@@ -727,6 +730,7 @@ static unsigned int mapkind( + for ( handle = 0; !(kind & MAPKIND_WRITE) && + handle < lgt->maptrack_limit; handle++ ) + { ++ smp_rmb(); + map = &maptrack_entry(lgt, handle); + if ( !(map->flags & (GNTMAP_device_map|GNTMAP_host_map)) || + map->domid != rd->domain_id ) +@@ -1094,6 +1098,7 @@ __gnttab_unmap_common( + return; + } + ++ smp_rmb(); + map = &maptrack_entry(lgt, op->handle); + + grant_read_lock(lgt); +-- +2.1.4 + Property changes on: head/emulators/xen-kernel47/files/0004-gnttab-correct-maptrack-table-accesses.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa217.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa217.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa217.patch (revision 475254) @@ -0,0 +1,41 @@ +From: Jan Beulich +Subject: x86/mm: disallow page stealing from HVM domains + +The operation's success can't be controlled by the guest, as the device +model may have an active mapping of the page. If we nevertheless +permitted this operation, we'd have to add further TLB flushing to +prevent scenarios like + +"Domains A (HVM), B (PV), C (PV); B->target==A + Steps: + 1. B maps page X from A as writable + 2. B unmaps page X without a TLB flush + 3. A sends page X to C via GNTTABOP_transfer + 4. C maps page X as pagetable (potentially causing a TLB flush in C, + but not in B) + + At this point, X would be mapped as a pagetable in C while being + writable through a stale TLB entry in B." + +A similar scenario could be constructed for A using XENMEM_exchange and +some arbitrary PV domain C then having this page allocated. + +This is XSA-217. + +Reported-by: Jann Horn +Signed-off-by: Jan Beulich +Acked-by: George Dunlap +Reviewed-by: Konrad Rzeszutek Wilk + +--- a/xen/arch/x86/mm.c ++++ b/xen/arch/x86/mm.c +@@ -4449,6 +4449,9 @@ int steal_page( + bool_t drop_dom_ref = 0; + const struct domain *owner = dom_xen; + ++ if ( paging_mode_external(d) ) ++ return -1; ++ + spin_lock(&d->page_alloc_lock); + + if ( is_xen_heap_page(page) || ((owner = page_get_owner(page)) != d) ) Property changes on: head/emulators/xen-kernel47/files/xsa217.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa219-4.8.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa219-4.8.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa219-4.8.patch (revision 475254) @@ -0,0 +1,151 @@ +From 3986b845e87c3f963227ece86bb633450761ec18 Mon Sep 17 00:00:00 2001 +From: Andrew Cooper +Date: Thu, 11 May 2017 14:47:00 +0100 +Subject: [PATCH] x86/shadow: Hold references for the duration of emulated + writes + +The (misnamed) emulate_gva_to_mfn() function translates a linear address to an +mfn, but releases its page reference before returning the mfn to its caller. + +sh_emulate_map_dest() uses the results of one or two translations to construct +a virtual mapping to the underlying frames, completes an emulated +write/cmpxchg, then unmaps the virtual mappings. + +The page references need holding until the mappings are unmapped, or the +frames can change ownership before the writes occurs. + +This is XSA-219 + +Reported-by: Andrew Cooper +Signed-off-by: Andrew Cooper +Reviewed-by: Jan Beulich +Reviewed-by: Tim Deegan +--- + xen/arch/x86/mm/shadow/common.c | 54 +++++++++++++++++++++++++++-------------- + 1 file changed, 36 insertions(+), 18 deletions(-) + +diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c +index ced2313..13305d2 100644 +--- a/xen/arch/x86/mm/shadow/common.c ++++ b/xen/arch/x86/mm/shadow/common.c +@@ -1703,7 +1703,10 @@ static unsigned int shadow_get_allocation(struct domain *d) + /**************************************************************************/ + /* Handling guest writes to pagetables. */ + +-/* Translate a VA to an MFN, injecting a page-fault if we fail. */ ++/* ++ * Translate a VA to an MFN, injecting a page-fault if we fail. If the ++ * mapping succeeds, a reference will be held on the underlying page. ++ */ + #define BAD_GVA_TO_GFN (~0UL) + #define BAD_GFN_TO_MFN (~1UL) + #define READONLY_GFN (~2UL) +@@ -1751,16 +1754,15 @@ static mfn_t emulate_gva_to_mfn(struct vcpu *v, unsigned long vaddr, + ASSERT(mfn_valid(mfn)); + + v->arch.paging.last_write_was_pt = !!sh_mfn_is_a_page_table(mfn); +- /* +- * Note shadow cannot page out or unshare this mfn, so the map won't +- * disappear. Otherwise, caller must hold onto page until done. +- */ +- put_page(page); + + return mfn; + } + +-/* Check that the user is allowed to perform this write. */ ++/* ++ * Check that the user is allowed to perform this write. If a mapping is ++ * returned, page references will be held on sh_ctxt->mfn[0] and ++ * sh_ctxt->mfn[1] iff !INVALID_MFN. ++ */ + void *sh_emulate_map_dest(struct vcpu *v, unsigned long vaddr, + unsigned int bytes, + struct sh_emulate_ctxt *sh_ctxt) +@@ -1768,13 +1770,6 @@ void *sh_emulate_map_dest(struct vcpu *v, unsigned long vaddr, + struct domain *d = v->domain; + void *map; + +- sh_ctxt->mfn[0] = emulate_gva_to_mfn(v, vaddr, sh_ctxt); +- if ( !mfn_valid(sh_ctxt->mfn[0]) ) +- return ((mfn_x(sh_ctxt->mfn[0]) == BAD_GVA_TO_GFN) ? +- MAPPING_EXCEPTION : +- (mfn_x(sh_ctxt->mfn[0]) == READONLY_GFN) ? +- MAPPING_SILENT_FAIL : MAPPING_UNHANDLEABLE); +- + #ifndef NDEBUG + /* We don't emulate user-mode writes to page tables. */ + if ( has_hvm_container_domain(d) +@@ -1787,6 +1782,17 @@ void *sh_emulate_map_dest(struct vcpu *v, unsigned long vaddr, + } + #endif + ++ sh_ctxt->mfn[0] = emulate_gva_to_mfn(v, vaddr, sh_ctxt); ++ if ( !mfn_valid(sh_ctxt->mfn[0]) ) ++ { ++ switch ( mfn_x(sh_ctxt->mfn[0]) ) ++ { ++ case BAD_GVA_TO_GFN: return MAPPING_EXCEPTION; ++ case READONLY_GFN: return MAPPING_SILENT_FAIL; ++ default: return MAPPING_UNHANDLEABLE; ++ } ++ } ++ + /* Unaligned writes mean probably this isn't a pagetable. */ + if ( vaddr & (bytes - 1) ) + sh_remove_shadows(d, sh_ctxt->mfn[0], 0, 0 /* Slow, can fail. */ ); +@@ -1803,6 +1809,7 @@ void *sh_emulate_map_dest(struct vcpu *v, unsigned long vaddr, + * Cross-page emulated writes are only supported for HVM guests; + * PV guests ought to know better. + */ ++ put_page(mfn_to_page(sh_ctxt->mfn[0])); + return MAPPING_UNHANDLEABLE; + } + else +@@ -1810,17 +1817,26 @@ void *sh_emulate_map_dest(struct vcpu *v, unsigned long vaddr, + /* This write crosses a page boundary. Translate the second page. */ + sh_ctxt->mfn[1] = emulate_gva_to_mfn(v, vaddr + bytes - 1, sh_ctxt); + if ( !mfn_valid(sh_ctxt->mfn[1]) ) +- return ((mfn_x(sh_ctxt->mfn[1]) == BAD_GVA_TO_GFN) ? +- MAPPING_EXCEPTION : +- (mfn_x(sh_ctxt->mfn[1]) == READONLY_GFN) ? +- MAPPING_SILENT_FAIL : MAPPING_UNHANDLEABLE); ++ { ++ put_page(mfn_to_page(sh_ctxt->mfn[0])); ++ switch ( mfn_x(sh_ctxt->mfn[1]) ) ++ { ++ case BAD_GVA_TO_GFN: return MAPPING_EXCEPTION; ++ case READONLY_GFN: return MAPPING_SILENT_FAIL; ++ default: return MAPPING_UNHANDLEABLE; ++ } ++ } + + /* Cross-page writes mean probably not a pagetable. */ + sh_remove_shadows(d, sh_ctxt->mfn[1], 0, 0 /* Slow, can fail. */ ); + + map = vmap(sh_ctxt->mfn, 2); + if ( !map ) ++ { ++ put_page(mfn_to_page(sh_ctxt->mfn[0])); ++ put_page(mfn_to_page(sh_ctxt->mfn[1])); + return MAPPING_UNHANDLEABLE; ++ } + map += (vaddr & ~PAGE_MASK); + } + +@@ -1890,10 +1906,12 @@ void sh_emulate_unmap_dest(struct vcpu *v, void *addr, unsigned int bytes, + } + + paging_mark_dirty(v->domain, mfn_x(sh_ctxt->mfn[0])); ++ put_page(mfn_to_page(sh_ctxt->mfn[0])); + + if ( unlikely(mfn_valid(sh_ctxt->mfn[1])) ) + { + paging_mark_dirty(v->domain, mfn_x(sh_ctxt->mfn[1])); ++ put_page(mfn_to_page(sh_ctxt->mfn[1])); + vunmap((void *)((unsigned long)addr & PAGE_MASK)); + } + else +-- +2.1.4 + Property changes on: head/emulators/xen-kernel47/files/xsa219-4.8.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa220-4.7.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa220-4.7.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa220-4.7.patch (revision 475254) @@ -0,0 +1,133 @@ +From: Jan Beulich +Subject: x86: avoid leaking PKRU and BND* between vCPU-s + +PKRU is explicitly "XSAVE-managed but not XSAVE-enabled", so guests +might access the register (via {RD,WR}PKRU) without setting XCR0.PKRU. +Force context switching as well as migrating the register as soon as +CR4.PKE is being set the first time. + +For MPX (BND, BNDCFGU, and BNDSTATUS) the situation is less clear, +and the SDM has not entirely consistent information for that case. +While experimentally the instructions don't change register state as +long as the two XCR0 bits aren't both 1, be on the safe side and enable +both if BNDCFGS.EN is being set the first time. + +This is XSA-220. + +Reported-by: Andrew Cooper +Signed-off-by: Jan Beulich +Reviewed-by: Andrew Cooper + +--- a/xen/arch/x86/hvm/hvm.c ++++ b/xen/arch/x86/hvm/hvm.c +@@ -2452,6 +2452,27 @@ int hvm_set_cr4(unsigned long value, boo + paging_update_paging_modes(v); + } + ++ /* ++ * {RD,WR}PKRU are not gated on XCR0.PKRU and hence an oddly behaving ++ * guest may enable the feature in CR4 without enabling it in XCR0. We ++ * need to context switch / migrate PKRU nevertheless. ++ */ ++ if ( (value & X86_CR4_PKE) && !(v->arch.xcr0_accum & XSTATE_PKRU) ) ++ { ++ int rc = handle_xsetbv(XCR_XFEATURE_ENABLED_MASK, ++ get_xcr0() | XSTATE_PKRU); ++ ++ if ( rc ) ++ { ++ HVM_DBG_LOG(DBG_LEVEL_1, "Failed to force XCR0.PKRU: %d", rc); ++ goto gpf; ++ } ++ ++ if ( handle_xsetbv(XCR_XFEATURE_ENABLED_MASK, ++ get_xcr0() & ~XSTATE_PKRU) ) ++ /* nothing, best effort only */; ++ } ++ + return X86EMUL_OKAY; + + gpf: +--- a/xen/arch/x86/hvm/vmx/vmx.c ++++ b/xen/arch/x86/hvm/vmx/vmx.c +@@ -31,6 +31,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -783,6 +784,45 @@ static int vmx_load_vmcs_ctxt(struct vcp + return 0; + } + ++static bool_t vmx_set_guest_bndcfgs(struct vcpu *v, u64 val) ++{ ++ if ( !cpu_has_mpx || !cpu_has_vmx_mpx || ++ !is_canonical_address(val) || ++ (val & IA32_BNDCFGS_RESERVED) ) ++ return 0; ++ ++ /* ++ * While MPX instructions are supposed to be gated on XCR0.BND*, let's ++ * nevertheless force the relevant XCR0 bits on when the feature is being ++ * enabled in BNDCFGS. ++ */ ++ if ( (val & IA32_BNDCFGS_ENABLE) && ++ !(v->arch.xcr0_accum & (XSTATE_BNDREGS | XSTATE_BNDCSR)) ) ++ { ++ uint64_t xcr0 = get_xcr0(); ++ int rc; ++ ++ if ( v != current ) ++ return 0; ++ ++ rc = handle_xsetbv(XCR_XFEATURE_ENABLED_MASK, ++ xcr0 | XSTATE_BNDREGS | XSTATE_BNDCSR); ++ ++ if ( rc ) ++ { ++ HVM_DBG_LOG(DBG_LEVEL_1, "Failed to force XCR0.BND*: %d", rc); ++ return 0; ++ } ++ ++ if ( handle_xsetbv(XCR_XFEATURE_ENABLED_MASK, xcr0) ) ++ /* nothing, best effort only */; ++ } ++ ++ __vmwrite(GUEST_BNDCFGS, val); ++ ++ return 1; ++} ++ + static unsigned int __init vmx_init_msr(void) + { + return (cpu_has_mpx && cpu_has_vmx_mpx) + +@@ -822,11 +862,8 @@ static int vmx_load_msr(struct vcpu *v, + switch ( ctxt->msr[i].index ) + { + case MSR_IA32_BNDCFGS: +- if ( cpu_has_mpx && cpu_has_vmx_mpx && +- is_canonical_address(ctxt->msr[i].val) && +- !(ctxt->msr[i].val & IA32_BNDCFGS_RESERVED) ) +- __vmwrite(GUEST_BNDCFGS, ctxt->msr[i].val); +- else if ( ctxt->msr[i].val ) ++ if ( !vmx_set_guest_bndcfgs(v, ctxt->msr[i].val) && ++ ctxt->msr[i].val ) + err = -ENXIO; + break; + case MSR_IA32_XSS: +@@ -2878,11 +2915,8 @@ static int vmx_msr_write_intercept(unsig + break; + } + case MSR_IA32_BNDCFGS: +- if ( !cpu_has_mpx || !cpu_has_vmx_mpx || +- !is_canonical_address(msr_content) || +- (msr_content & IA32_BNDCFGS_RESERVED) ) ++ if ( !vmx_set_guest_bndcfgs(v, msr_content) ) + goto gp_fault; +- __vmwrite(GUEST_BNDCFGS, msr_content); + break; + case IA32_FEATURE_CONTROL_MSR: + case MSR_IA32_VMX_BASIC...MSR_IA32_VMX_TRUE_ENTRY_CTLS: Property changes on: head/emulators/xen-kernel47/files/xsa220-4.7.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa221.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa221.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa221.patch (revision 475254) @@ -0,0 +1,194 @@ +From: Jan Beulich +Subject: evtchn: avoid NULL derefs + +Commit fbbd5009e6 ("evtchn: refactor low-level event channel port ops") +added a de-reference of the struct evtchn pointer for a port without +first making sure the bucket pointer is non-NULL. This de-reference is +actually entirely unnecessary, as all relevant callers (beyond the +problematic do_poll()) already hold the port number in their hands, and +the actual leaf functions need nothing else. + +For FIFO event channels there's a second problem in that the ordering +of reads and updates to ->num_evtchns and ->event_array[] was so far +undefined (the read side isn't always holding the domain's event lock). +Add respective barriers. + +This is XSA-221. + +Reported-by: Ankur Arora +Signed-off-by: Jan Beulich + +--- a/xen/arch/x86/irq.c ++++ b/xen/arch/x86/irq.c +@@ -1486,7 +1486,7 @@ int pirq_guest_unmask(struct domain *d) + { + pirq = pirqs[i]->pirq; + if ( pirqs[i]->masked && +- !evtchn_port_is_masked(d, evtchn_from_port(d, pirqs[i]->evtchn)) ) ++ !evtchn_port_is_masked(d, pirqs[i]->evtchn) ) + pirq_guest_eoi(pirqs[i]); + } + } while ( ++pirq < d->nr_pirqs && n == ARRAY_SIZE(pirqs) ); +@@ -2244,7 +2244,6 @@ static void dump_irqs(unsigned char key) + int i, irq, pirq; + struct irq_desc *desc; + irq_guest_action_t *action; +- struct evtchn *evtchn; + struct domain *d; + const struct pirq *info; + unsigned long flags; +@@ -2287,11 +2286,10 @@ static void dump_irqs(unsigned char key) + d = action->guest[i]; + pirq = domain_irq_to_pirq(d, irq); + info = pirq_info(d, pirq); +- evtchn = evtchn_from_port(d, info->evtchn); + printk("%u:%3d(%c%c%c)", + d->domain_id, pirq, +- (evtchn_port_is_pending(d, evtchn) ? 'P' : '-'), +- (evtchn_port_is_masked(d, evtchn) ? 'M' : '-'), ++ evtchn_port_is_pending(d, info->evtchn) ? 'P' : '-', ++ evtchn_port_is_masked(d, info->evtchn) ? 'M' : '-', + (info->masked ? 'M' : '-')); + if ( i != action->nr_guests ) + printk(","); +--- a/xen/common/event_2l.c ++++ b/xen/common/event_2l.c +@@ -61,16 +61,20 @@ static void evtchn_2l_unmask(struct doma + } + } + +-static bool_t evtchn_2l_is_pending(struct domain *d, +- const struct evtchn *evtchn) ++static bool_t evtchn_2l_is_pending(struct domain *d, evtchn_port_t port) + { +- return test_bit(evtchn->port, &shared_info(d, evtchn_pending)); ++ unsigned int max_ports = BITS_PER_EVTCHN_WORD(d) * BITS_PER_EVTCHN_WORD(d); ++ ++ ASSERT(port < max_ports); ++ return port < max_ports && test_bit(port, &shared_info(d, evtchn_pending)); + } + +-static bool_t evtchn_2l_is_masked(struct domain *d, +- const struct evtchn *evtchn) ++static bool_t evtchn_2l_is_masked(struct domain *d, evtchn_port_t port) + { +- return test_bit(evtchn->port, &shared_info(d, evtchn_mask)); ++ unsigned int max_ports = BITS_PER_EVTCHN_WORD(d) * BITS_PER_EVTCHN_WORD(d); ++ ++ ASSERT(port < max_ports); ++ return port >= max_ports || test_bit(port, &shared_info(d, evtchn_mask)); + } + + static void evtchn_2l_print_state(struct domain *d, +--- a/xen/common/event_channel.c ++++ b/xen/common/event_channel.c +@@ -1380,8 +1380,8 @@ static void domain_dump_evtchn_info(stru + + printk(" %4u [%d/%d/", + port, +- !!evtchn_port_is_pending(d, chn), +- !!evtchn_port_is_masked(d, chn)); ++ evtchn_port_is_pending(d, port), ++ evtchn_port_is_masked(d, port)); + evtchn_port_print_state(d, chn); + printk("]: s=%d n=%d x=%d", + chn->state, chn->notify_vcpu_id, chn->xen_consumer); +--- a/xen/common/event_fifo.c ++++ b/xen/common/event_fifo.c +@@ -27,6 +27,12 @@ static inline event_word_t *evtchn_fifo_ + if ( unlikely(port >= d->evtchn_fifo->num_evtchns) ) + return NULL; + ++ /* ++ * Callers aren't required to hold d->event_lock, so we need to synchronize ++ * with add_page_to_event_array(). ++ */ ++ smp_rmb(); ++ + p = port / EVTCHN_FIFO_EVENT_WORDS_PER_PAGE; + w = port % EVTCHN_FIFO_EVENT_WORDS_PER_PAGE; + +@@ -287,24 +293,22 @@ static void evtchn_fifo_unmask(struct do + evtchn_fifo_set_pending(v, evtchn); + } + +-static bool_t evtchn_fifo_is_pending(struct domain *d, +- const struct evtchn *evtchn) ++static bool_t evtchn_fifo_is_pending(struct domain *d, evtchn_port_t port) + { + event_word_t *word; + +- word = evtchn_fifo_word_from_port(d, evtchn->port); ++ word = evtchn_fifo_word_from_port(d, port); + if ( unlikely(!word) ) + return 0; + + return test_bit(EVTCHN_FIFO_PENDING, word); + } + +-static bool_t evtchn_fifo_is_masked(struct domain *d, +- const struct evtchn *evtchn) ++static bool_t evtchn_fifo_is_masked(struct domain *d, evtchn_port_t port) + { + event_word_t *word; + +- word = evtchn_fifo_word_from_port(d, evtchn->port); ++ word = evtchn_fifo_word_from_port(d, port); + if ( unlikely(!word) ) + return 1; + +@@ -593,6 +597,10 @@ static int add_page_to_event_array(struc + return rc; + + d->evtchn_fifo->event_array[slot] = virt; ++ ++ /* Synchronize with evtchn_fifo_word_from_port(). */ ++ smp_wmb(); ++ + d->evtchn_fifo->num_evtchns += EVTCHN_FIFO_EVENT_WORDS_PER_PAGE; + + /* +--- a/xen/common/schedule.c ++++ b/xen/common/schedule.c +@@ -965,7 +965,7 @@ static long do_poll(struct sched_poll *s + goto out; + + rc = 0; +- if ( evtchn_port_is_pending(d, evtchn_from_port(d, port)) ) ++ if ( evtchn_port_is_pending(d, port) ) + goto out; + } + +--- a/xen/include/xen/event.h ++++ b/xen/include/xen/event.h +@@ -137,8 +137,8 @@ struct evtchn_port_ops { + void (*set_pending)(struct vcpu *v, struct evtchn *evtchn); + void (*clear_pending)(struct domain *d, struct evtchn *evtchn); + void (*unmask)(struct domain *d, struct evtchn *evtchn); +- bool_t (*is_pending)(struct domain *d, const struct evtchn *evtchn); +- bool_t (*is_masked)(struct domain *d, const struct evtchn *evtchn); ++ bool_t (*is_pending)(struct domain *d, evtchn_port_t port); ++ bool_t (*is_masked)(struct domain *d, evtchn_port_t port); + /* + * Is the port unavailable because it's still being cleaned up + * after being closed? +@@ -175,15 +175,15 @@ static inline void evtchn_port_unmask(st + } + + static inline bool_t evtchn_port_is_pending(struct domain *d, +- const struct evtchn *evtchn) ++ evtchn_port_t port) + { +- return d->evtchn_port_ops->is_pending(d, evtchn); ++ return d->evtchn_port_ops->is_pending(d, port); + } + + static inline bool_t evtchn_port_is_masked(struct domain *d, +- const struct evtchn *evtchn) ++ evtchn_port_t port) + { +- return d->evtchn_port_ops->is_masked(d, evtchn); ++ return d->evtchn_port_ops->is_masked(d, port); + } + + static inline bool_t evtchn_port_is_busy(struct domain *d, evtchn_port_t port) Property changes on: head/emulators/xen-kernel47/files/xsa221.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa222-1-4.7.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa222-1-4.7.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa222-1-4.7.patch (revision 475254) @@ -0,0 +1,119 @@ +From: Andrew Cooper +Subject: xen/memory: Fix return value handing of guest_remove_page() + +Despite the description in mm.h, guest_remove_page() previously returned 0 for +paging errors. + +Switch guest_remove_page() to having regular 0/-error semantics, and propagate +the return values from clear_mmio_p2m_entry() and mem_sharing_unshare_page() +to the callers (although decrease_reservation() is the only caller which +currently cares). + +This is part of XSA-222. + +Reported-by: Julien Grall +Signed-off-by: Andrew Cooper +Reviewed-by: Jan Beulich + +--- a/xen/common/memory.c ++++ b/xen/common/memory.c +@@ -244,6 +244,7 @@ int guest_remove_page(struct domain *d, + p2m_type_t p2mt; + #endif + unsigned long mfn; ++ int rc; + + #ifdef CONFIG_X86 + mfn = mfn_x(get_gfn_query(d, gmfn, &p2mt)); +@@ -261,13 +262,15 @@ int guest_remove_page(struct domain *d, + put_page(page); + } + p2m_mem_paging_drop_page(d, gmfn, p2mt); +- return 1; ++ ++ return 0; + } + if ( p2mt == p2m_mmio_direct ) + { +- clear_mmio_p2m_entry(d, gmfn, _mfn(mfn), 0); ++ rc = clear_mmio_p2m_entry(d, gmfn, _mfn(mfn), PAGE_ORDER_4K); + put_gfn(d, gmfn); +- return 1; ++ ++ return rc; + } + #else + mfn = gmfn_to_mfn(d, gmfn); +@@ -277,21 +280,25 @@ int guest_remove_page(struct domain *d, + put_gfn(d, gmfn); + gdprintk(XENLOG_INFO, "Domain %u page number %lx invalid\n", + d->domain_id, gmfn); +- return 0; ++ ++ return -EINVAL; + } + + #ifdef CONFIG_X86 + if ( p2m_is_shared(p2mt) ) + { +- /* Unshare the page, bail out on error. We unshare because +- * we might be the only one using this shared page, and we +- * need to trigger proper cleanup. Once done, this is +- * like any other page. */ +- if ( mem_sharing_unshare_page(d, gmfn, 0) ) ++ /* ++ * Unshare the page, bail out on error. We unshare because we ++ * might be the only one using this shared page, and we need to ++ * trigger proper cleanup. Once done, this is like any other page. ++ */ ++ rc = mem_sharing_unshare_page(d, gmfn, 0); ++ if ( rc ) + { + put_gfn(d, gmfn); + (void)mem_sharing_notify_enomem(d, gmfn, 0); +- return 0; ++ ++ return rc; + } + /* Maybe the mfn changed */ + mfn = mfn_x(get_gfn_query_unlocked(d, gmfn, &p2mt)); +@@ -304,7 +311,8 @@ int guest_remove_page(struct domain *d, + { + put_gfn(d, gmfn); + gdprintk(XENLOG_INFO, "Bad page free for domain %u\n", d->domain_id); +- return 0; ++ ++ return -ENXIO; + } + + if ( test_and_clear_bit(_PGT_pinned, &page->u.inuse.type_info) ) +@@ -327,7 +335,7 @@ int guest_remove_page(struct domain *d, + put_page(page); + put_gfn(d, gmfn); + +- return 1; ++ return 0; + } + + static void decrease_reservation(struct memop_args *a) +@@ -371,7 +379,7 @@ static void decrease_reservation(struct + continue; + + for ( j = 0; j < (1 << a->extent_order); j++ ) +- if ( !guest_remove_page(a->domain, gmfn + j) ) ++ if ( guest_remove_page(a->domain, gmfn + j) ) + goto out; + } + +--- a/xen/include/xen/mm.h ++++ b/xen/include/xen/mm.h +@@ -509,8 +509,7 @@ int xenmem_add_to_physmap_one(struct dom + union xen_add_to_physmap_batch_extra extra, + unsigned long idx, xen_pfn_t gpfn); + +-/* Returns 1 on success, 0 on error, negative if the ring +- * for event propagation is full in the presence of paging */ ++/* Returns 0 on success, or negative on error. */ + int guest_remove_page(struct domain *d, unsigned long gmfn); + + #define RAM_TYPE_CONVENTIONAL 0x00000001 Property changes on: head/emulators/xen-kernel47/files/xsa222-1-4.7.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa222-2-4.7.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa222-2-4.7.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa222-2-4.7.patch (revision 475254) @@ -0,0 +1,412 @@ +From: Jan Beulich +Subject: guest_physmap_remove_page() needs its return value checked + +Callers, namely such subsequently freeing the page, must not blindly +assume success - the function may namely fail when needing to shatter a +super page, but there not being memory available for the then needed +intermediate page table. + +As it happens, guest_remove_page() callers now also all check the +return value. + +Furthermore a missed put_gfn() on an error path in gnttab_transfer() is +also being taken care of. + +This is part of XSA-222. + +Reported-by: Julien Grall +Signed-off-by: Jan Beulich +Signed-off-by: Julien Grall +Reviewed-by: Andrew Cooper + +--- a/xen/arch/arm/mm.c ++++ b/xen/arch/arm/mm.c +@@ -1299,13 +1299,14 @@ int replace_grant_host_mapping(unsigned + { + unsigned long gfn = (unsigned long)(addr >> PAGE_SHIFT); + struct domain *d = current->domain; ++ int rc; + + if ( new_addr != 0 || (flags & GNTMAP_contains_pte) ) + return GNTST_general_error; + +- guest_physmap_remove_page(d, gfn, mfn, 0); ++ rc = guest_physmap_remove_page(d, gfn, mfn, 0); + +- return GNTST_okay; ++ return rc ? GNTST_general_error : GNTST_okay; + } + + int is_iomem_page(unsigned long mfn) +--- a/xen/arch/arm/p2m.c ++++ b/xen/arch/arm/p2m.c +@@ -1313,15 +1313,14 @@ int guest_physmap_add_entry(struct domai + d->arch.p2m.default_access); + } + +-void guest_physmap_remove_page(struct domain *d, +- unsigned long gpfn, +- unsigned long mfn, unsigned int page_order) ++int guest_physmap_remove_page(struct domain *d, unsigned long gfn, ++ unsigned long mfn, unsigned int page_order) + { +- apply_p2m_changes(d, REMOVE, +- pfn_to_paddr(gpfn), +- pfn_to_paddr(gpfn + (1<arch.p2m.default_access); ++ return apply_p2m_changes(d, REMOVE, ++ pfn_to_paddr(gfn), ++ pfn_to_paddr(gfn + (1 << page_order)), ++ pfn_to_paddr(mfn), MATTR_MEM, 0, p2m_invalid, ++ d->arch.p2m.default_access); + } + + int p2m_alloc_table(struct domain *d) +--- a/xen/arch/x86/domain.c ++++ b/xen/arch/x86/domain.c +@@ -802,7 +802,15 @@ int arch_domain_soft_reset(struct domain + ret = -ENOMEM; + goto exit_put_gfn; + } +- guest_physmap_remove_page(d, gfn, mfn, PAGE_ORDER_4K); ++ ++ ret = guest_physmap_remove_page(d, gfn, mfn, PAGE_ORDER_4K); ++ if ( ret ) ++ { ++ printk(XENLOG_G_ERR "Failed to remove Dom%d's shared_info frame %lx\n", ++ d->domain_id, gfn); ++ free_domheap_page(new_page); ++ goto exit_put_gfn; ++ } + + ret = guest_physmap_add_page(d, gfn, page_to_mfn(new_page), PAGE_ORDER_4K); + if ( ret ) +--- a/xen/arch/x86/domain_build.c ++++ b/xen/arch/x86/domain_build.c +@@ -427,7 +427,9 @@ static __init void pvh_add_mem_mapping(s + if ( !iomem_access_permitted(d, mfn + i, mfn + i) ) + { + omfn = get_gfn_query_unlocked(d, gfn + i, &t); +- guest_physmap_remove_page(d, gfn + i, mfn_x(omfn), PAGE_ORDER_4K); ++ if ( guest_physmap_remove_page(d, gfn + i, mfn_x(omfn), ++ PAGE_ORDER_4K) ) ++ /* nothing, best effort only */; + continue; + } + +--- a/xen/arch/x86/hvm/ioreq.c ++++ b/xen/arch/x86/hvm/ioreq.c +@@ -267,8 +267,9 @@ bool_t is_ioreq_server_page(struct domai + static void hvm_remove_ioreq_gmfn( + struct domain *d, struct hvm_ioreq_page *iorp) + { +- guest_physmap_remove_page(d, iorp->gmfn, +- page_to_mfn(iorp->page), 0); ++ if ( guest_physmap_remove_page(d, iorp->gmfn, ++ page_to_mfn(iorp->page), 0) ) ++ domain_crash(d); + clear_page(iorp->va); + } + +--- a/xen/arch/x86/mm.c ++++ b/xen/arch/x86/mm.c +@@ -4271,7 +4271,11 @@ static int replace_grant_p2m_mapping( + type, mfn_x(old_mfn), frame); + return GNTST_general_error; + } +- guest_physmap_remove_page(d, gfn, frame, PAGE_ORDER_4K); ++ if ( guest_physmap_remove_page(d, gfn, frame, PAGE_ORDER_4K) ) ++ { ++ put_gfn(d, gfn); ++ return GNTST_general_error; ++ } + + put_gfn(d, gfn); + return GNTST_okay; +@@ -4793,7 +4797,7 @@ int xenmem_add_to_physmap_one( + struct page_info *page = NULL; + unsigned long gfn = 0; /* gcc ... */ + unsigned long prev_mfn, mfn = 0, old_gpfn; +- int rc; ++ int rc = 0; + p2m_type_t p2mt; + + switch ( space ) +@@ -4867,25 +4871,30 @@ int xenmem_add_to_physmap_one( + { + if ( is_xen_heap_mfn(prev_mfn) ) + /* Xen heap frames are simply unhooked from this phys slot. */ +- guest_physmap_remove_page(d, gpfn, prev_mfn, PAGE_ORDER_4K); ++ rc = guest_physmap_remove_page(d, gpfn, prev_mfn, PAGE_ORDER_4K); + else + /* Normal domain memory is freed, to avoid leaking memory. */ +- guest_remove_page(d, gpfn); ++ rc = guest_remove_page(d, gpfn); + } + /* In the XENMAPSPACE_gmfn case we still hold a ref on the old page. */ + put_gfn(d, gpfn); + ++ if ( rc ) ++ goto put_both; ++ + /* Unmap from old location, if any. */ + old_gpfn = get_gpfn_from_mfn(mfn); + ASSERT( old_gpfn != SHARED_M2P_ENTRY ); + if ( space == XENMAPSPACE_gmfn || space == XENMAPSPACE_gmfn_range ) + ASSERT( old_gpfn == gfn ); + if ( old_gpfn != INVALID_M2P_ENTRY ) +- guest_physmap_remove_page(d, old_gpfn, mfn, PAGE_ORDER_4K); ++ rc = guest_physmap_remove_page(d, old_gpfn, mfn, PAGE_ORDER_4K); + + /* Map at new location. */ +- rc = guest_physmap_add_page(d, gpfn, mfn, PAGE_ORDER_4K); ++ if ( !rc ) ++ rc = guest_physmap_add_page(d, gpfn, mfn, PAGE_ORDER_4K); + ++ put_both: + /* In the XENMAPSPACE_gmfn, we took a ref of the gfn at the top */ + if ( space == XENMAPSPACE_gmfn || space == XENMAPSPACE_gmfn_range ) + put_gfn(d, gfn); +--- a/xen/arch/x86/mm/p2m.c ++++ b/xen/arch/x86/mm/p2m.c +@@ -2837,10 +2837,12 @@ int p2m_add_foreign(struct domain *tdom, + { + if ( is_xen_heap_mfn(prev_mfn) ) + /* Xen heap frames are simply unhooked from this phys slot */ +- guest_physmap_remove_page(tdom, gpfn, prev_mfn, 0); ++ rc = guest_physmap_remove_page(tdom, gpfn, prev_mfn, 0); + else + /* Normal domain memory is freed, to avoid leaking memory. */ +- guest_remove_page(tdom, gpfn); ++ rc = guest_remove_page(tdom, gpfn); ++ if ( rc ) ++ goto put_both; + } + /* + * Create the new mapping. Can't use guest_physmap_add_page() because it +@@ -2853,6 +2855,7 @@ int p2m_add_foreign(struct domain *tdom, + "gpfn:%lx mfn:%lx fgfn:%lx td:%d fd:%d\n", + gpfn, mfn, fgfn, tdom->domain_id, fdom->domain_id); + ++ put_both: + put_page(page); + + /* +--- a/xen/common/grant_table.c ++++ b/xen/common/grant_table.c +@@ -1768,6 +1768,7 @@ gnttab_transfer( + for ( i = 0; i < count; i++ ) + { + bool_t okay; ++ int rc; + + if (i && hypercall_preempt_check()) + return i; +@@ -1818,27 +1819,33 @@ gnttab_transfer( + goto copyback; + } + +- guest_physmap_remove_page(d, gop.mfn, mfn, 0); ++ rc = guest_physmap_remove_page(d, gop.mfn, mfn, 0); + gnttab_flush_tlb(d); ++ if ( rc ) ++ { ++ gdprintk(XENLOG_INFO, ++ "gnttab_transfer: can't remove GFN %"PRI_xen_pfn" (MFN %lx)\n", ++ gop.mfn, mfn); ++ gop.status = GNTST_general_error; ++ goto put_gfn_and_copyback; ++ } + + /* Find the target domain. */ + if ( unlikely((e = rcu_lock_domain_by_id(gop.domid)) == NULL) ) + { +- put_gfn(d, gop.mfn); + gdprintk(XENLOG_INFO, "gnttab_transfer: can't find domain %d\n", + gop.domid); +- page->count_info &= ~(PGC_count_mask|PGC_allocated); +- free_domheap_page(page); + gop.status = GNTST_bad_domain; +- goto copyback; ++ goto put_gfn_and_copyback; + } + + if ( xsm_grant_transfer(XSM_HOOK, d, e) ) + { +- put_gfn(d, gop.mfn); + gop.status = GNTST_permission_denied; + unlock_and_copyback: + rcu_unlock_domain(e); ++ put_gfn_and_copyback: ++ put_gfn(d, gop.mfn); + page->count_info &= ~(PGC_count_mask|PGC_allocated); + free_domheap_page(page); + goto copyback; +@@ -1887,12 +1894,8 @@ gnttab_transfer( + "Transferee (d%d) has no headroom (tot %u, max %u)\n", + e->domain_id, e->tot_pages, e->max_pages); + +- rcu_unlock_domain(e); +- put_gfn(d, gop.mfn); +- page->count_info &= ~(PGC_count_mask|PGC_allocated); +- free_domheap_page(page); + gop.status = GNTST_general_error; +- goto copyback; ++ goto unlock_and_copyback; + } + + /* Okay, add the page to 'e'. */ +@@ -1921,13 +1924,8 @@ gnttab_transfer( + + if ( drop_dom_ref ) + put_domain(e); +- rcu_unlock_domain(e); +- +- put_gfn(d, gop.mfn); +- page->count_info &= ~(PGC_count_mask|PGC_allocated); +- free_domheap_page(page); + gop.status = GNTST_general_error; +- goto copyback; ++ goto unlock_and_copyback; + } + + page_list_add_tail(page, &e->page_list); +--- a/xen/common/memory.c ++++ b/xen/common/memory.c +@@ -250,8 +250,12 @@ int guest_remove_page(struct domain *d, + mfn = mfn_x(get_gfn_query(d, gmfn, &p2mt)); + if ( unlikely(p2m_is_paging(p2mt)) ) + { +- guest_physmap_remove_page(d, gmfn, mfn, 0); ++ rc = guest_physmap_remove_page(d, gmfn, mfn, 0); + put_gfn(d, gmfn); ++ ++ if ( rc ) ++ return rc; ++ + /* If the page hasn't yet been paged out, there is an + * actual page that needs to be released. */ + if ( p2mt == p2m_ram_paging_out ) +@@ -315,7 +319,9 @@ int guest_remove_page(struct domain *d, + return -ENXIO; + } + +- if ( test_and_clear_bit(_PGT_pinned, &page->u.inuse.type_info) ) ++ rc = guest_physmap_remove_page(d, gmfn, mfn, 0); ++ ++ if ( !rc && test_and_clear_bit(_PGT_pinned, &page->u.inuse.type_info) ) + put_page_and_type(page); + + /* +@@ -326,16 +332,14 @@ int guest_remove_page(struct domain *d, + * For this purpose (and to match populate_physmap() behavior), the page + * is kept allocated. + */ +- if ( !is_domain_direct_mapped(d) && ++ if ( !rc && !is_domain_direct_mapped(d) && + test_and_clear_bit(_PGC_allocated, &page->count_info) ) + put_page(page); + +- guest_physmap_remove_page(d, gmfn, mfn, 0); +- + put_page(page); + put_gfn(d, gmfn); + +- return 0; ++ return rc; + } + + static void decrease_reservation(struct memop_args *a) +@@ -570,7 +574,8 @@ static long memory_exchange(XEN_GUEST_HA + gfn = mfn_to_gmfn(d, mfn); + /* Pages were unshared above */ + BUG_ON(SHARED_M2P(gfn)); +- guest_physmap_remove_page(d, gfn, mfn, 0); ++ if ( guest_physmap_remove_page(d, gfn, mfn, 0) ) ++ domain_crash(d); + put_page(page); + } + +@@ -1120,7 +1125,7 @@ long do_memory_op(unsigned long cmd, XEN + page = get_page_from_gfn(d, xrfp.gpfn, NULL, P2M_ALLOC); + if ( page ) + { +- guest_physmap_remove_page(d, xrfp.gpfn, page_to_mfn(page), 0); ++ rc = guest_physmap_remove_page(d, xrfp.gpfn, page_to_mfn(page), 0); + put_page(page); + } + else +--- a/xen/drivers/passthrough/arm/smmu.c ++++ b/xen/drivers/passthrough/arm/smmu.c +@@ -2783,9 +2783,7 @@ static int arm_smmu_unmap_page(struct do + if ( !is_domain_direct_mapped(d) ) + return -EINVAL; + +- guest_physmap_remove_page(d, gfn, gfn, 0); +- +- return 0; ++ return guest_physmap_remove_page(d, gfn, gfn, 0); + } + + static const struct iommu_ops arm_smmu_iommu_ops = { +--- a/xen/include/asm-arm/p2m.h ++++ b/xen/include/asm-arm/p2m.h +@@ -177,10 +177,6 @@ static inline int guest_physmap_add_page + return guest_physmap_add_entry(d, gfn, mfn, page_order, p2m_ram_rw); + } + +-void guest_physmap_remove_page(struct domain *d, +- unsigned long gpfn, +- unsigned long mfn, unsigned int page_order); +- + unsigned long gmfn_to_mfn(struct domain *d, unsigned long gpfn); + + /* +--- a/xen/include/asm-x86/p2m.h ++++ b/xen/include/asm-x86/p2m.h +@@ -558,11 +558,6 @@ static inline int guest_physmap_add_page + return guest_physmap_add_entry(d, gfn, mfn, page_order, p2m_ram_rw); + } + +-/* Remove a page from a domain's p2m table */ +-int guest_physmap_remove_page(struct domain *d, +- unsigned long gfn, +- unsigned long mfn, unsigned int page_order); +- + /* Set a p2m range as populate-on-demand */ + int guest_physmap_mark_populate_on_demand(struct domain *d, unsigned long gfn, + unsigned int order); +--- a/xen/include/xen/p2m-common.h ++++ b/xen/include/xen/p2m-common.h +@@ -1,6 +1,7 @@ + #ifndef _XEN_P2M_COMMON_H + #define _XEN_P2M_COMMON_H + ++#include + #include + + /* +@@ -33,6 +34,11 @@ typedef enum { + /* NOTE: Assumed to be only 4 bits right now on x86. */ + } p2m_access_t; + ++/* Remove a page from a domain's p2m table */ ++int __must_check ++guest_physmap_remove_page(struct domain *d, unsigned long gfn, ++ unsigned long mfn, unsigned int page_order); ++ + /* Map MMIO regions in the p2m: start_gfn and nr describe the range in + * * the guest physical address space to map, starting from the machine + * * frame number mfn. */ +--- a/xen/include/xen/mm.h ++++ b/xen/include/xen/mm.h +@@ -510,7 +510,7 @@ int xenmem_add_to_physmap_one(struct dom + unsigned long idx, xen_pfn_t gpfn); + + /* Returns 0 on success, or negative on error. */ +-int guest_remove_page(struct domain *d, unsigned long gmfn); ++int __must_check guest_remove_page(struct domain *d, unsigned long gmfn); + + #define RAM_TYPE_CONVENTIONAL 0x00000001 + #define RAM_TYPE_RESERVED 0x00000002 Property changes on: head/emulators/xen-kernel47/files/xsa222-2-4.7.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa213-4.7.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa213-4.7.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa213-4.7.patch (revision 475254) @@ -0,0 +1,173 @@ +From: Jan Beulich +Subject: multicall: deal with early exit conditions + +In particular changes to guest privilege level require the multicall +sequence to be aborted, as hypercalls are permitted from kernel mode +only. While likely not very useful in a multicall, also properly handle +the return value in the HYPERVISOR_iret case (which should be the guest +specified value). + +This is XSA-213. + +Reported-by: Jann Horn +Signed-off-by: Jan Beulich +Reviewed-by: Andrew Cooper +Acked-by: Julien Grall + +--- a/xen/arch/arm/traps.c ++++ b/xen/arch/arm/traps.c +@@ -1529,30 +1529,33 @@ static bool_t check_multicall_32bit_clea + return true; + } + +-void do_multicall_call(struct multicall_entry *multi) ++enum mc_disposition do_multicall_call(struct multicall_entry *multi) + { + arm_hypercall_fn_t call = NULL; + + if ( multi->op >= ARRAY_SIZE(arm_hypercall_table) ) + { + multi->result = -ENOSYS; +- return; ++ return mc_continue; + } + + call = arm_hypercall_table[multi->op].fn; + if ( call == NULL ) + { + multi->result = -ENOSYS; +- return; ++ return mc_continue; + } + + if ( is_32bit_domain(current->domain) && + !check_multicall_32bit_clean(multi) ) +- return; ++ return mc_continue; + + multi->result = call(multi->args[0], multi->args[1], + multi->args[2], multi->args[3], + multi->args[4]); ++ ++ return likely(!psr_mode_is_user(guest_cpu_user_regs())) ++ ? mc_continue : mc_preempt; + } + + /* +--- a/xen/common/multicall.c ++++ b/xen/common/multicall.c +@@ -40,6 +40,7 @@ do_multicall( + struct mc_state *mcs = ¤t->mc_state; + uint32_t i; + int rc = 0; ++ enum mc_disposition disp = mc_continue; + + if ( unlikely(__test_and_set_bit(_MCSF_in_multicall, &mcs->flags)) ) + { +@@ -50,7 +51,7 @@ do_multicall( + if ( unlikely(!guest_handle_okay(call_list, nr_calls)) ) + rc = -EFAULT; + +- for ( i = 0; !rc && i < nr_calls; i++ ) ++ for ( i = 0; !rc && disp == mc_continue && i < nr_calls; i++ ) + { + if ( i && hypercall_preempt_check() ) + goto preempted; +@@ -63,7 +64,7 @@ do_multicall( + + trace_multicall_call(&mcs->call); + +- do_multicall_call(&mcs->call); ++ disp = do_multicall_call(&mcs->call); + + #ifndef NDEBUG + { +@@ -77,7 +78,14 @@ do_multicall( + } + #endif + +- if ( unlikely(__copy_field_to_guest(call_list, &mcs->call, result)) ) ++ if ( unlikely(disp == mc_exit) ) ++ { ++ if ( __copy_field_to_guest(call_list, &mcs->call, result) ) ++ /* nothing, best effort only */; ++ rc = mcs->call.result; ++ } ++ else if ( unlikely(__copy_field_to_guest(call_list, &mcs->call, ++ result)) ) + rc = -EFAULT; + else if ( mcs->flags & MCSF_call_preempted ) + { +@@ -93,6 +101,9 @@ do_multicall( + guest_handle_add_offset(call_list, 1); + } + ++ if ( unlikely(disp == mc_preempt) && i < nr_calls ) ++ goto preempted; ++ + perfc_incr(calls_to_multicall); + perfc_add(calls_from_multicall, i); + mcs->flags = 0; +--- a/xen/include/asm-arm/multicall.h ++++ b/xen/include/asm-arm/multicall.h +@@ -1,7 +1,11 @@ + #ifndef __ASM_ARM_MULTICALL_H__ + #define __ASM_ARM_MULTICALL_H__ + +-extern void do_multicall_call(struct multicall_entry *call); ++extern enum mc_disposition { ++ mc_continue, ++ mc_exit, ++ mc_preempt, ++} do_multicall_call(struct multicall_entry *call); + + #endif /* __ASM_ARM_MULTICALL_H__ */ + /* +--- a/xen/include/asm-x86/multicall.h ++++ b/xen/include/asm-x86/multicall.h +@@ -7,8 +7,21 @@ + + #include + ++enum mc_disposition { ++ mc_continue, ++ mc_exit, ++ mc_preempt, ++}; ++ ++#define multicall_ret(call) \ ++ (unlikely((call)->op == __HYPERVISOR_iret) \ ++ ? mc_exit \ ++ : likely(guest_kernel_mode(current, \ ++ guest_cpu_user_regs())) \ ++ ? mc_continue : mc_preempt) ++ + #define do_multicall_call(_call) \ +- do { \ ++ ({ \ + __asm__ __volatile__ ( \ + " movq %c1(%0),%%rax; " \ + " leaq hypercall_table(%%rip),%%rdi; " \ +@@ -37,9 +50,11 @@ + /* all the caller-saves registers */ \ + : "rax", "rcx", "rdx", "rsi", "rdi", \ + "r8", "r9", "r10", "r11" ); \ +- } while ( 0 ) ++ multicall_ret(_call); \ ++ }) + + #define compat_multicall_call(_call) \ ++ ({ \ + __asm__ __volatile__ ( \ + " movl %c1(%0),%%eax; " \ + " leaq compat_hypercall_table(%%rip),%%rdi; "\ +@@ -67,6 +82,8 @@ + "i" (-ENOSYS) \ + /* all the caller-saves registers */ \ + : "rax", "rcx", "rdx", "rsi", "rdi", \ +- "r8", "r9", "r10", "r11" ) \ ++ "r8", "r9", "r10", "r11" ); \ ++ multicall_ret(_call); \ ++ }) + + #endif /* __ASM_X86_MULTICALL_H__ */ Property changes on: head/emulators/xen-kernel47/files/xsa213-4.7.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa214.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa214.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa214.patch (revision 475254) @@ -0,0 +1,41 @@ +From: Jan Beulich +Subject: x86: discard type information when stealing pages + +While a page having just a single general reference left necessarily +has a zero type reference count too, its type may still be valid (and +in validated state; at present this is only possible and relevant for +PGT_seg_desc_page, as page tables have their type forcibly zapped when +their type reference count drops to zero, and +PGT_{writable,shared}_page pages don't require any validation). In +such a case when the page is being re-used with the same type again, +validation is being skipped. As validation criteria differ between +32- and 64-bit guests, pages to be transferred between guests need to +have their validation indicator zapped (and with it we zap all other +type information at once). + +This is XSA-214. + +Reported-by: Jann Horn +Signed-off-by: Jan Beulich +Reviewed-by: Andrew Cooper + +--- a/xen/arch/x86/mm.c ++++ b/xen/arch/x86/mm.c +@@ -4466,6 +4466,17 @@ int steal_page( + y = cmpxchg(&page->count_info, x, x & ~PGC_count_mask); + } while ( y != x ); + ++ /* ++ * With the sole reference dropped temporarily, no-one can update type ++ * information. Type count also needs to be zero in this case, but e.g. ++ * PGT_seg_desc_page may still have PGT_validated set, which we need to ++ * clear before transferring ownership (as validation criteria vary ++ * depending on domain type). ++ */ ++ BUG_ON(page->u.inuse.type_info & (PGT_count_mask | PGT_locked | ++ PGT_pinned)); ++ page->u.inuse.type_info = 0; ++ + /* Swizzle the owner then reinstate the PGC_allocated reference. */ + page_set_owner(page, NULL); + y = page->count_info; Property changes on: head/emulators/xen-kernel47/files/xsa214.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa215.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa215.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa215.patch (revision 475254) @@ -0,0 +1,37 @@ +From: Jan Beulich +Subject: x86: correct create_bounce_frame + +We may push up to 96 bytes on the guest (kernel) stack, so we should +also cover as much in the early range check. Note that this is the +simplest possible patch, which has the theoretical potential of +breaking a guest: We only really push 96 bytes when invoking the +failsafe callback, ordinary exceptions only have 56 or 64 bytes pushed +(without / with error code respectively). There is, however, no PV OS +known to place a kernel stack there. + +This is XSA-215. + +Reported-by: Jann Horn +Signed-off-by: Jan Beulich +Reviewed-by: Andrew Cooper + +--- a/xen/arch/x86/x86_64/entry.S ++++ b/xen/arch/x86/x86_64/entry.S +@@ -347,7 +347,7 @@ int80_slow_path: + jmp handle_exception_saved + + /* CREATE A BASIC EXCEPTION FRAME ON GUEST OS STACK: */ +-/* { RCX, R11, [DS-GS,] [CR2,] [ERRCODE,] RIP, CS, RFLAGS, RSP, SS } */ ++/* { RCX, R11, [DS-GS,] [ERRCODE,] RIP, CS, RFLAGS, RSP, SS } */ + /* %rdx: trap_bounce, %rbx: struct vcpu */ + /* On return only %rbx and %rdx are guaranteed non-clobbered. */ + create_bounce_frame: +@@ -367,7 +367,7 @@ create_bounce_frame: + 2: andq $~0xf,%rsi # Stack frames are 16-byte aligned. + movq $HYPERVISOR_VIRT_START,%rax + cmpq %rax,%rsi +- movq $HYPERVISOR_VIRT_END+60,%rax ++ movq $HYPERVISOR_VIRT_END+12*8,%rax + sbb %ecx,%ecx # In +ve address space? Then okay. + cmpq %rax,%rsi + adc %ecx,%ecx # Above Xen private area? Then okay. Property changes on: head/emulators/xen-kernel47/files/xsa215.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/xsa212.patch =================================================================== --- head/emulators/xen-kernel47/files/xsa212.patch (nonexistent) +++ head/emulators/xen-kernel47/files/xsa212.patch (revision 475254) @@ -0,0 +1,87 @@ +memory: properly check guest memory ranges in XENMEM_exchange handling + +The use of guest_handle_okay() here (as introduced by the XSA-29 fix) +is insufficient here, guest_handle_subrange_okay() needs to be used +instead. + +Note that the uses are okay in +- XENMEM_add_to_physmap_batch handling due to the size field being only + 16 bits wide, +- livepatch_list() due to the limit of 1024 enforced on the + number-of-entries input (leaving aside the fact that this can be + called by a privileged domain only anyway), +- compat mode handling due to counts there being limited to 32 bits, +- everywhere else due to guest arrays being accessed sequentially from + index zero. + +This is XSA-212. + +Reported-by: Jann Horn +Signed-off-by: Jan Beulich +Reviewed-by: Andrew Cooper + +--- a/xen/common/memory.c ++++ b/xen/common/memory.c +@@ -436,8 +436,8 @@ static long memory_exchange(XEN_GUEST_HA + goto fail_early; + } + +- if ( !guest_handle_okay(exch.in.extent_start, exch.in.nr_extents) || +- !guest_handle_okay(exch.out.extent_start, exch.out.nr_extents) ) ++ if ( !guest_handle_subrange_okay(exch.in.extent_start, exch.nr_exchanged, ++ exch.in.nr_extents - 1) ) + { + rc = -EFAULT; + goto fail_early; +@@ -447,11 +447,27 @@ static long memory_exchange(XEN_GUEST_HA + { + in_chunk_order = exch.out.extent_order - exch.in.extent_order; + out_chunk_order = 0; ++ ++ if ( !guest_handle_subrange_okay(exch.out.extent_start, ++ exch.nr_exchanged >> in_chunk_order, ++ exch.out.nr_extents - 1) ) ++ { ++ rc = -EFAULT; ++ goto fail_early; ++ } + } + else + { + in_chunk_order = 0; + out_chunk_order = exch.in.extent_order - exch.out.extent_order; ++ ++ if ( !guest_handle_subrange_okay(exch.out.extent_start, ++ exch.nr_exchanged << out_chunk_order, ++ exch.out.nr_extents - 1) ) ++ { ++ rc = -EFAULT; ++ goto fail_early; ++ } + } + + d = rcu_lock_domain_by_any_id(exch.in.domid); +--- a/xen/include/asm-x86/x86_64/uaccess.h ++++ b/xen/include/asm-x86/x86_64/uaccess.h +@@ -29,8 +29,9 @@ extern void *xlat_malloc(unsigned long * + /* + * Valid if in +ve half of 48-bit address space, or above Xen-reserved area. + * This is also valid for range checks (addr, addr+size). As long as the +- * start address is outside the Xen-reserved area then we will access a +- * non-canonical address (and thus fault) before ever reaching VIRT_START. ++ * start address is outside the Xen-reserved area, sequential accesses ++ * (starting at addr) will hit a non-canonical address (and thus fault) ++ * before ever reaching VIRT_START. + */ + #define __addr_ok(addr) \ + (((unsigned long)(addr) < (1UL<<47)) || \ +@@ -40,7 +41,8 @@ extern void *xlat_malloc(unsigned long * + (__addr_ok(addr) || is_compat_arg_xlat_range(addr, size)) + + #define array_access_ok(addr, count, size) \ +- (access_ok(addr, (count)*(size))) ++ (likely(((count) ?: 0UL) < (~0UL / (size))) && \ ++ access_ok(addr, (count) * (size))) + + #define __compat_addr_ok(d, addr) \ + ((unsigned long)(addr) < HYPERVISOR_COMPAT_VIRT_START(d)) Property changes on: head/emulators/xen-kernel47/files/xsa212.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/0001-x86-drop-unneeded-__packed-attributes.patch =================================================================== --- head/emulators/xen-kernel47/files/0001-x86-drop-unneeded-__packed-attributes.patch (nonexistent) +++ head/emulators/xen-kernel47/files/0001-x86-drop-unneeded-__packed-attributes.patch (revision 475254) @@ -0,0 +1,122 @@ +From 7de7d07d47cc389bc341f5524ea8415c3c78e378 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= +Date: Fri, 10 Mar 2017 01:05:51 +0900 +Subject: [PATCH 1/2] x86: drop unneeded __packed attributes +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +There where a couple of unneeded packed attributes in several x86-specific +structures, that are obviously aligned. The only non-trivial one is +vmcb_struct, which has been checked to have the same layout with and without +the packed attribute using pahole. In that case add a build-time size check to +be on the safe side. + +No functional change is expected as a result of this commit. + +Signed-off-by: Roger Pau Monné +Reviewed-by: Jan Beulich +Reviewed-by: Boris Ostrovsky +--- + xen/arch/x86/hvm/svm/vmcb.c | 3 +++ + xen/arch/x86/x86_emulate/x86_emulate.h | 4 ++-- + xen/include/asm-x86/hvm/svm/vmcb.h | 12 ++++++------ + 3 files changed, 11 insertions(+), 8 deletions(-) + +diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c +index 9ea014f..f982fc9 100644 +--- a/xen/arch/x86/hvm/svm/vmcb.c ++++ b/xen/arch/x86/hvm/svm/vmcb.c +@@ -72,6 +72,9 @@ static int construct_vmcb(struct vcpu *v) + struct arch_svm_struct *arch_svm = &v->arch.hvm_svm; + struct vmcb_struct *vmcb = arch_svm->vmcb; + ++ /* Build-time check of the size of VMCB AMD structure. */ ++ BUILD_BUG_ON(sizeof(*vmcb) != PAGE_SIZE); ++ + vmcb->_general1_intercepts = + GENERAL1_INTERCEPT_INTR | GENERAL1_INTERCEPT_NMI | + GENERAL1_INTERCEPT_SMI | GENERAL1_INTERCEPT_INIT | +diff --git a/xen/arch/x86/x86_emulate/x86_emulate.h b/xen/arch/x86/x86_emulate/x86_emulate.h +index 17c86f3..bbdf16a 100644 +--- a/xen/arch/x86/x86_emulate/x86_emulate.h ++++ b/xen/arch/x86/x86_emulate/x86_emulate.h +@@ -71,7 +71,7 @@ enum x86_swint_emulation { + * Attribute for segment selector. This is a copy of bit 40:47 & 52:55 of the + * segment descriptor. It happens to match the format of an AMD SVM VMCB. + */ +-typedef union __packed segment_attributes { ++typedef union segment_attributes { + uint16_t bytes; + struct + { +@@ -91,7 +91,7 @@ typedef union __packed segment_attributes { + * Full state of a segment register (visible and hidden portions). + * Again, this happens to match the format of an AMD SVM VMCB. + */ +-struct __packed segment_register { ++struct segment_register { + uint16_t sel; + segment_attributes_t attr; + uint32_t limit; +diff --git a/xen/include/asm-x86/hvm/svm/vmcb.h b/xen/include/asm-x86/hvm/svm/vmcb.h +index bad2382..a3cd1b1 100644 +--- a/xen/include/asm-x86/hvm/svm/vmcb.h ++++ b/xen/include/asm-x86/hvm/svm/vmcb.h +@@ -308,7 +308,7 @@ enum VMEXIT_EXITCODE + /* Definition of segment state is borrowed by the generic HVM code. */ + typedef struct segment_register svm_segment_register_t; + +-typedef union __packed ++typedef union + { + u64 bytes; + struct +@@ -322,7 +322,7 @@ typedef union __packed + } fields; + } eventinj_t; + +-typedef union __packed ++typedef union + { + u64 bytes; + struct +@@ -340,7 +340,7 @@ typedef union __packed + } fields; + } vintr_t; + +-typedef union __packed ++typedef union + { + u64 bytes; + struct +@@ -357,7 +357,7 @@ typedef union __packed + } fields; + } ioio_info_t; + +-typedef union __packed ++typedef union + { + u64 bytes; + struct +@@ -366,7 +366,7 @@ typedef union __packed + } fields; + } lbrctrl_t; + +-typedef union __packed ++typedef union + { + uint32_t bytes; + struct +@@ -401,7 +401,7 @@ typedef union __packed + #define IOPM_SIZE (12 * 1024) + #define MSRPM_SIZE (8 * 1024) + +-struct __packed vmcb_struct { ++struct vmcb_struct { + u32 _cr_intercepts; /* offset 0x00 - cleanbit 0 */ + u32 _dr_intercepts; /* offset 0x04 - cleanbit 0 */ + u32 _exception_intercepts; /* offset 0x08 - cleanbit 0 */ +-- +2.10.1 (Apple Git-78) + Property changes on: head/emulators/xen-kernel47/files/0001-x86-drop-unneeded-__packed-attributes.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/0002-build-clang-fix-XSM-dummy-policy-when-using-clang-4..patch =================================================================== --- head/emulators/xen-kernel47/files/0002-build-clang-fix-XSM-dummy-policy-when-using-clang-4..patch (nonexistent) +++ head/emulators/xen-kernel47/files/0002-build-clang-fix-XSM-dummy-policy-when-using-clang-4..patch (revision 475254) @@ -0,0 +1,69 @@ +From e5a1bf46187b0d39ec7e8c46e11c42027840747c Mon Sep 17 00:00:00 2001 +From: Roger Pau Monne +Date: Fri, 10 Mar 2017 01:08:26 +0900 +Subject: [PATCH 2/2] build/clang: fix XSM dummy policy when using clang 4.0 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +There seems to be some weird bug in clang 4.0 that prevents xsm_pmu_op from +working as expected, and vpmu.o ends up with a reference to +__xsm_action_mismatch_detected which makes the build fail: + +[...] +ld -melf_x86_64_fbsd -T xen.lds -N prelink.o \ + xen/common/symbols-dummy.o -o xen/.xen-syms.0 +prelink.o: In function `xsm_default_action': +xen/include/xsm/dummy.h:80: undefined reference to `__xsm_action_mismatch_detected' +xen/xen/include/xsm/dummy.h:80: relocation truncated to fit: R_X86_64_PC32 against undefined symbol `__xsm_action_mismatch_detected' +ld: xen/xen/.xen-syms.0: hidden symbol `__xsm_action_mismatch_detected' isn't defined + +Then doing a search in the objects files: + +# find xen/ -type f -name '*.o' -print0 | xargs -0 bash -c \ + 'for filename; do nm "$filename" | \ + grep -q __xsm_action_mismatch_detected && echo "$filename"; done' bash +xen/arch/x86/prelink.o +xen/arch/x86/cpu/vpmu.o +xen/arch/x86/cpu/built_in.o +xen/arch/x86/built_in.o + +The current patch is the only way I've found to fix this so far, by simply +moving the XSM_PRIV check into the default case in xsm_pmu_op. This also fixes +the behavior of do_xenpmu_op, which will now return -EINVAL for unknown +XENPMU_* operations, instead of -EPERM when called by a privileged domain. + +Signed-off-by: Roger Pau Monné +--- +Cc: Daniel De Graaf +--- + xen/include/xsm/dummy.h | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h +index abbe282..0039c39 100644 +--- a/xen/include/xsm/dummy.h ++++ b/xen/include/xsm/dummy.h +@@ -711,18 +711,13 @@ static XSM_INLINE int xsm_pmu_op (XSM_DEFAULT_ARG struct domain *d, unsigned int + XSM_ASSERT_ACTION(XSM_OTHER); + switch ( op ) + { +- case XENPMU_mode_set: +- case XENPMU_mode_get: +- case XENPMU_feature_set: +- case XENPMU_feature_get: +- return xsm_default_action(XSM_PRIV, d, current->domain); + case XENPMU_init: + case XENPMU_finish: + case XENPMU_lvtpc_set: + case XENPMU_flush: + return xsm_default_action(XSM_HOOK, d, current->domain); + default: +- return -EPERM; ++ return xsm_default_action(XSM_PRIV, d, current->domain); + } + } + +-- +2.10.1 (Apple Git-78) + Property changes on: head/emulators/xen-kernel47/files/0002-build-clang-fix-XSM-dummy-policy-when-using-clang-4..patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/kconf_arch.patch =================================================================== --- head/emulators/xen-kernel47/files/kconf_arch.patch (nonexistent) +++ head/emulators/xen-kernel47/files/kconf_arch.patch (revision 475254) @@ -0,0 +1,33 @@ +diff --git a/xen/Makefile b/xen/Makefile +index 0d5f240..f232d01 100644 +--- a/xen/Makefile ++++ b/xen/Makefile +@@ -21,8 +21,8 @@ MAKEFLAGS += -rR + + EFI_MOUNTPOINT ?= $(BOOT_DIR)/efi + +-ARCH=$(XEN_TARGET_ARCH) +-SRCARCH=$(shell echo $(ARCH) | sed -e 's/x86.*/x86/' -e s'/arm\(32\|64\)/arm/g') ++KCONF_ARCH=$(XEN_TARGET_ARCH) ++KCONF_SRCARCH=$(shell echo $(KCONF_ARCH) | sed -e 's/x86.*/x86/' -e s'/arm\(32\|64\)/arm/g') + + # Don't break if the build process wasn't called from the top level + # we need XEN_TARGET_ARCH to generate the proper config +@@ -246,14 +246,14 @@ kconfig := silentoldconfig oldconfig config menuconfig defconfig \ + randconfig + .PHONY: $(kconfig) + $(kconfig): +- $(MAKE) -f $(BASEDIR)/tools/kconfig/Makefile.kconfig ARCH=$(ARCH) SRCARCH=$(SRCARCH) HOSTCC="$(HOSTCC)" HOSTCXX="$(HOSTCXX)" $@ ++ $(MAKE) -f $(BASEDIR)/tools/kconfig/Makefile.kconfig ARCH=$(KCONF_ARCH) SRCARCH=$(KCONF_SRCARCH) HOSTCC="$(HOSTCC)" HOSTCXX="$(HOSTCXX)" $@ + + include/config/%.conf: include/config/auto.conf.cmd $(KCONFIG_CONFIG) +- $(MAKE) -f $(BASEDIR)/tools/kconfig/Makefile.kconfig ARCH=$(ARCH) SRCARCH=$(SRCARCH) HOSTCC="$(HOSTCC)" HOSTCXX="$(HOSTCXX)" silentoldconfig ++ $(MAKE) -f $(BASEDIR)/tools/kconfig/Makefile.kconfig ARCH=$(KCONF_ARCH) SRCARCH=$(KCONF_SRCARCH) HOSTCC="$(HOSTCC)" HOSTCXX="$(HOSTCXX)" silentoldconfig + + # Allow people to just run `make` as before and not force them to configure + $(KCONFIG_CONFIG): +- $(MAKE) -f $(BASEDIR)/tools/kconfig/Makefile.kconfig ARCH=$(ARCH) SRCARCH=$(SRCARCH) HOSTCC="$(HOSTCC)" HOSTCXX="$(HOSTCXX)" defconfig ++ $(MAKE) -f $(BASEDIR)/tools/kconfig/Makefile.kconfig ARCH=$(KCONF_ARCH) SRCARCH=$(KCONF_SRCARCH) HOSTCC="$(HOSTCC)" HOSTCXX="$(HOSTCXX)" defconfig + + # Break the dependency chain for the first run + include/config/auto.conf.cmd: ; Property changes on: head/emulators/xen-kernel47/files/kconf_arch.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/files/0001-xen-logdirty-prevent-preemption-if-finished.patch =================================================================== --- head/emulators/xen-kernel47/files/0001-xen-logdirty-prevent-preemption-if-finished.patch (nonexistent) +++ head/emulators/xen-kernel47/files/0001-xen-logdirty-prevent-preemption-if-finished.patch (revision 475254) @@ -0,0 +1,44 @@ +From 7a0ed7f3c2dcb1f104b6f70223d48d8826aec7f2 Mon Sep 17 00:00:00 2001 +From: Roger Pau Monne +Date: Tue, 31 May 2016 16:07:26 +0200 +Subject: [PATCH 1/2] xen/logdirty: prevent preemption if finished +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +While working on PVH migration support I've realized that +paging_log_dirty_op sometimes restarts with sc->pages == pages, which means +there's no more work to do. Avoid this by adding a check in the preemption +points of the function. + +Signed-off-by: Roger Pau Monné +--- + xen/arch/x86/mm/paging.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c +index 8219bb6..ed94ff7 100644 +--- a/xen/arch/x86/mm/paging.c ++++ b/xen/arch/x86/mm/paging.c +@@ -519,7 +519,8 @@ static int paging_log_dirty_op(struct domain *d, + if ( l2 ) + unmap_domain_page(l2); + +- if ( i3 < LOGDIRTY_NODE_ENTRIES - 1 && hypercall_preempt_check() ) ++ if ( i3 < LOGDIRTY_NODE_ENTRIES - 1 && hypercall_preempt_check() && ++ sc->pages != pages ) + { + d->arch.paging.preempt.log_dirty.i4 = i4; + d->arch.paging.preempt.log_dirty.i3 = i3 + 1; +@@ -531,7 +532,7 @@ static int paging_log_dirty_op(struct domain *d, + unmap_domain_page(l3); + + if ( !rv && i4 < LOGDIRTY_NODE_ENTRIES - 1 && +- hypercall_preempt_check() ) ++ hypercall_preempt_check() && sc->pages != pages ) + { + d->arch.paging.preempt.log_dirty.i4 = i4 + 1; + d->arch.paging.preempt.log_dirty.i3 = 0; +-- +2.7.4 (Apple Git-66) + Property changes on: head/emulators/xen-kernel47/files/0001-xen-logdirty-prevent-preemption-if-finished.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Index: head/emulators/xen-kernel47/files/0002-xen-rework-paging_log_dirty_op-to-work-with-hvm-gues.patch =================================================================== --- head/emulators/xen-kernel47/files/0002-xen-rework-paging_log_dirty_op-to-work-with-hvm-gues.patch (nonexistent) +++ head/emulators/xen-kernel47/files/0002-xen-rework-paging_log_dirty_op-to-work-with-hvm-gues.patch (revision 475254) @@ -0,0 +1,244 @@ +From e253a2e2fb45197273cee7a7fa2b77f7a87cb67f Mon Sep 17 00:00:00 2001 +From: Roger Pau Monne +Date: Tue, 31 May 2016 16:07:26 +0200 +Subject: [PATCH 2/2] xen: rework paging_log_dirty_op to work with hvm guests +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +When the caller of paging_log_dirty_op is a hvm guest Xen would choke when +trying to copy the dirty bitmap to the guest because the paging lock is +already held. + +Fix this by independently mapping each page of the guest bitmap as needed +without the paging lock held. + +Signed-off-by: Roger Pau Monné +Cc: Tim Deegan +Cc: Jan Beulich +Cc: Andrew Cooper +--- +Changes since v6: + - Move the again label to the start of the function. + - Set all the preempt fields if we need to map a new page (just like on the + preempt case). + +Changes since v4: + - Indent again label. + - Replace bogus paddr_t cast with proper type. + - Update preempt.log_dirty before dropping the paging lock. + +Changes since v3: + - Drop last parameter from map_dirty_bitmap. + - Drop pointless initializers in paging_log_dirty_op. + - Add a new field to paging_domain in order to copy i2 position. + - Move the again case up to make sure we don't hold cached values of the + contents of log_dirty. + - Replace the BUG_ON in paging_log_dirty_op with an ASSERT. + +Changes since v2: + - Add checks for p2m_is_ram and p2m_is_discard_write when mapping a guest + page. + - Remove error checking from memset/memcpy, they unconditionally return + dst. +--- + xen/arch/x86/mm/paging.c | 97 +++++++++++++++++++++++++++++++++++++++----- + xen/include/asm-x86/domain.h | 1 + + 2 files changed, 87 insertions(+), 11 deletions(-) + +diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c +index ed94ff7..595c9d6 100644 +--- a/xen/arch/x86/mm/paging.c ++++ b/xen/arch/x86/mm/paging.c +@@ -406,6 +406,51 @@ int paging_mfn_is_dirty(struct domain *d, mfn_t gmfn) + return rv; + } + ++static inline void *map_dirty_bitmap(XEN_GUEST_HANDLE_64(uint8) dirty_bitmap, ++ unsigned long pages, ++ struct page_info **page) ++{ ++ uint32_t pfec = PFEC_page_present | PFEC_write_access; ++ unsigned long gfn; ++ p2m_type_t p2mt; ++ ++ gfn = paging_gva_to_gfn(current, ++ (unsigned long)(dirty_bitmap.p + (pages >> 3)), ++ &pfec); ++ if ( gfn == INVALID_GFN ) ++ return NULL; ++ ++ *page = get_page_from_gfn(current->domain, gfn, &p2mt, P2M_UNSHARE); ++ ++ if ( !p2m_is_ram(p2mt) ) ++ { ++ put_page(*page); ++ return NULL; ++ } ++ if ( p2m_is_paging(p2mt) ) ++ { ++ put_page(*page); ++ p2m_mem_paging_populate(current->domain, gfn); ++ return NULL; ++ } ++ if ( p2m_is_shared(p2mt) || p2m_is_discard_write(p2mt) ) ++ { ++ put_page(*page); ++ return NULL; ++ } ++ ++ return __map_domain_page(*page); ++} ++ ++static inline void unmap_dirty_bitmap(void *addr, struct page_info *page) ++{ ++ if ( addr != NULL ) ++ { ++ unmap_domain_page(addr); ++ put_page(page); ++ } ++} ++ + + /* Read a domain's log-dirty bitmap and stats. If the operation is a CLEAN, + * clear the bitmap and stats as well. */ +@@ -418,7 +463,11 @@ static int paging_log_dirty_op(struct domain *d, + mfn_t *l4 = NULL, *l3 = NULL, *l2 = NULL; + unsigned long *l1 = NULL; + int i4, i3, i2; ++ uint8_t *dirty_bitmap; ++ struct page_info *page; ++ unsigned long index_mapped; + ++ again: + if ( !resuming ) + { + /* +@@ -439,6 +488,14 @@ static int paging_log_dirty_op(struct domain *d, + p2m_flush_hardware_cached_dirty(d); + } + ++ index_mapped = resuming ? d->arch.paging.preempt.log_dirty.done : 0; ++ dirty_bitmap = map_dirty_bitmap(sc->dirty_bitmap, index_mapped, &page); ++ if ( dirty_bitmap == NULL ) ++ { ++ domain_unpause(d); ++ return -EFAULT; ++ } ++ + paging_lock(d); + + if ( !d->arch.paging.preempt.dom ) +@@ -478,18 +535,18 @@ static int paging_log_dirty_op(struct domain *d, + l4 = paging_map_log_dirty_bitmap(d); + i4 = d->arch.paging.preempt.log_dirty.i4; + i3 = d->arch.paging.preempt.log_dirty.i3; ++ i2 = d->arch.paging.preempt.log_dirty.i2; + pages = d->arch.paging.preempt.log_dirty.done; + + for ( ; (pages < sc->pages) && (i4 < LOGDIRTY_NODE_ENTRIES); i4++, i3 = 0 ) + { + l3 = (l4 && mfn_valid(l4[i4])) ? map_domain_page(l4[i4]) : NULL; +- for ( ; (pages < sc->pages) && (i3 < LOGDIRTY_NODE_ENTRIES); i3++ ) ++ for ( ; (pages < sc->pages) && (i3 < LOGDIRTY_NODE_ENTRIES); ++ i3++, i2 = 0 ) + { + l2 = ((l3 && mfn_valid(l3[i3])) ? + map_domain_page(l3[i3]) : NULL); +- for ( i2 = 0; +- (pages < sc->pages) && (i2 < LOGDIRTY_NODE_ENTRIES); +- i2++ ) ++ for ( ; (pages < sc->pages) && (i2 < LOGDIRTY_NODE_ENTRIES); i2++ ) + { + unsigned int bytes = PAGE_SIZE; + l1 = ((l2 && mfn_valid(l2[i2])) ? +@@ -498,15 +555,28 @@ static int paging_log_dirty_op(struct domain *d, + bytes = (unsigned int)((sc->pages - pages + 7) >> 3); + if ( likely(peek) ) + { +- if ( (l1 ? copy_to_guest_offset(sc->dirty_bitmap, +- pages >> 3, (uint8_t *)l1, +- bytes) +- : clear_guest_offset(sc->dirty_bitmap, +- pages >> 3, bytes)) != 0 ) ++ if ( pages >> (3 + PAGE_SHIFT) != ++ index_mapped >> (3 + PAGE_SHIFT) ) + { +- rv = -EFAULT; +- goto out; ++ /* We need to map next page */ ++ d->arch.paging.preempt.log_dirty.i4 = i4; ++ d->arch.paging.preempt.log_dirty.i3 = i3; ++ d->arch.paging.preempt.log_dirty.i2 = i2; ++ d->arch.paging.preempt.log_dirty.done = pages; ++ d->arch.paging.preempt.dom = current->domain; ++ d->arch.paging.preempt.op = sc->op; ++ resuming = 1; ++ paging_unlock(d); ++ unmap_dirty_bitmap(dirty_bitmap, page); ++ goto again; + } ++ ASSERT(((pages >> 3) % PAGE_SIZE) + bytes <= PAGE_SIZE); ++ if ( l1 ) ++ memcpy(dirty_bitmap + ((pages >> 3) % PAGE_SIZE), l1, ++ bytes); ++ else ++ memset(dirty_bitmap + ((pages >> 3) % PAGE_SIZE), 0, ++ bytes); + } + pages += bytes << 3; + if ( l1 ) +@@ -524,6 +594,7 @@ static int paging_log_dirty_op(struct domain *d, + { + d->arch.paging.preempt.log_dirty.i4 = i4; + d->arch.paging.preempt.log_dirty.i3 = i3 + 1; ++ d->arch.paging.preempt.log_dirty.i2 = 0; + rv = -ERESTART; + break; + } +@@ -536,6 +607,7 @@ static int paging_log_dirty_op(struct domain *d, + { + d->arch.paging.preempt.log_dirty.i4 = i4 + 1; + d->arch.paging.preempt.log_dirty.i3 = 0; ++ d->arch.paging.preempt.log_dirty.i2 = 0; + rv = -ERESTART; + } + if ( rv ) +@@ -565,6 +637,7 @@ static int paging_log_dirty_op(struct domain *d, + if ( rv ) + { + /* Never leave the domain paused on real errors. */ ++ unmap_dirty_bitmap(dirty_bitmap, page); + ASSERT(rv == -ERESTART); + return rv; + } +@@ -577,12 +650,14 @@ static int paging_log_dirty_op(struct domain *d, + * paging modes (shadow or hap). Safe because the domain is paused. */ + d->arch.paging.log_dirty.clean_dirty_bitmap(d); + } ++ unmap_dirty_bitmap(dirty_bitmap, page); + domain_unpause(d); + return rv; + + out: + d->arch.paging.preempt.dom = NULL; + paging_unlock(d); ++ unmap_dirty_bitmap(dirty_bitmap, page); + domain_unpause(d); + + if ( l1 ) +diff --git a/xen/include/asm-x86/domain.h b/xen/include/asm-x86/domain.h +index 165e533..0dc1ed8 100644 +--- a/xen/include/asm-x86/domain.h ++++ b/xen/include/asm-x86/domain.h +@@ -206,6 +206,7 @@ struct paging_domain { + unsigned long done:PADDR_BITS - PAGE_SHIFT; + unsigned long i4:PAGETABLE_ORDER; + unsigned long i3:PAGETABLE_ORDER; ++ unsigned long i2:PAGETABLE_ORDER; + } log_dirty; + }; + } preempt; +-- +2.7.4 (Apple Git-66) + Property changes on: head/emulators/xen-kernel47/files/0002-xen-rework-paging_log_dirty_op-to-work-with-hvm-gues.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Index: head/emulators/xen-kernel47/files/xen.4th =================================================================== --- head/emulators/xen-kernel47/files/xen.4th (nonexistent) +++ head/emulators/xen-kernel47/files/xen.4th (revision 475254) @@ -0,0 +1,99 @@ +\ Copyright (c) 2015 Devin Teske +\ All rights reserved. +\ +\ Redistribution and use in source and binary forms, with or without +\ modification, are permitted provided that the following conditions +\ are met: +\ 1. Redistributions of source code must retain the above copyright +\ notice, this list of conditions and the following disclaimer. +\ 2. Redistributions in binary form must reproduce the above copyright +\ notice, this list of conditions and the following disclaimer in the +\ documentation and/or other materials provided with the distribution. +\ +\ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +\ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +\ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +\ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +\ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +\ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +\ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +\ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +\ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +\ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +\ SUCH DAMAGE. +\ +\ $FreeBSD$ + +create xenkerndefault 64 allot +0 xenkerndefault c! + +also menu-command-helpers +also menu-namespace + +: init_xen_active ( N -- N ) + s" [X]en Kernel.. off" 2 pick menu_caption[x] setenv + s" [X]en Kernel.. On" 2 pick toggled_text[x] setenv + s" toggle_xen" 2 pick menu_command[x] setenv + s" 120" 2 pick menu_keycode[x] setenv + s" ^[1mX^[men Kernel.. ^[34;1mOff^[m" 2 pick ansi_caption[x] setenv + s" ^[1mX^[men Kernel.. ^[32;7mOn^[m" 2 pick toggled_ansi[x] setenv +; + +: init_xen_inactive ( N -- N ) + s" Xen Kernel.. N/A" 2dup + 4 pick menu_caption[x] setenv + 2 pick ansi_caption[x] setenv + s" true" 2 pick menu_command[x] setenv +; + +: init_xen ( -- ) + s" optionsmenu_options" getenv 0> if + c@ dup [char] 0 > over [char] 9 < and false = if + drop [char] 0 + then + 1+ + else + [char] 1 + then + begin + dup [char] 8 > if + false ( break ) + else + dup s" optionsmenu_caption[x]" 20 +c! getenv -1 = if + false ( break ) + else + drop true + then + then + while + 1+ + repeat + + s" xen_kernel" getenv dup -1 <> over 0> and if + xenkerndefault 1+ 0 2swap strcat swap 1- c! + init_xen_active ( n -- n ) + toggle_menuitem ( n -- n ) + else + drop + xenkerndefault c@ 0<> if + init_xen_active ( n -- n ) + else + init_xen_inactive ( n -- n ) + then + then +; + +: toggle_xen ( N -- N TRUE ) + toggle_menuitem ( n -- n ) + menu-redraw + + dup toggle_stateN @ 0= if + s" xen_kernel" unsetenv + else + xenkerndefault count s" xen_kernel" setenv + then + + TRUE \ loop menu again +; + +set optionsmenu_init="$optionsmenu_init init_xen" Property changes on: head/emulators/xen-kernel47/files/xen.4th ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/distinfo =================================================================== --- head/emulators/xen-kernel47/distinfo (nonexistent) +++ head/emulators/xen-kernel47/distinfo (revision 475254) @@ -0,0 +1,3 @@ +TIMESTAMP = 1489059095 +SHA256 (xen-4.7.2.tar.gz) = 61494a56d9251e2108080f95b0dc8e3d175f1ba4da34603fc07b91cfebf358d5 +SIZE (xen-4.7.2.tar.gz) = 20714281 Property changes on: head/emulators/xen-kernel47/distinfo ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/pkg-message =================================================================== --- head/emulators/xen-kernel47/pkg-message (nonexistent) +++ head/emulators/xen-kernel47/pkg-message (revision 475254) @@ -0,0 +1,18 @@ +Please add the following entries in order to boot the xen kernel + +In /etc/sysctl.conf: + vm.max_wired=-1 + +In /etc/ttys: + xc0 "/usr/libexec/getty Pc" xterm on secure + +In /boot/loader.conf for a dom0 with 2G memory and 4 vcpus: + hw.pci.mcfg=0 + xen_kernel="/boot/xen" + xen_cmdline="dom0_mem=2048M dom0_max_vcpus=4 dom0pvh=1 com1=115200,8n1 guest_loglvl=all loglvl=all" + +Add to the above xen_cmdline in order to activate the serial console: + console=com1 + +In /boot/menu.rc.local: + try-include /boot/xen.4th Property changes on: head/emulators/xen-kernel47/pkg-message ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/xen-kernel47/pkg-descr =================================================================== --- head/emulators/xen-kernel47/pkg-descr (nonexistent) +++ head/emulators/xen-kernel47/pkg-descr (revision 475254) @@ -0,0 +1,10 @@ +The Xen Project hypervisor is an open-source type-1 or baremetal hypervisor, +which makes it possible to run many instances of an operating system or indeed +different operating systems in parallel on a single machine (or host). The Xen +Project hypervisor is the only type-1 hypervisor that is available as open +source. It is used as the basis for a number of different commercial and open +source applications, such as: server virtualization, Infrastructure as a Service +(IaaS), desktop virtualization, security applications, embedded and hardware +appliances + +WWW: http://www.xenproject.org/ Property changes on: head/emulators/xen-kernel47/pkg-descr ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/sysutils/xen-tools/pkg-descr =================================================================== --- head/sysutils/xen-tools/pkg-descr (revision 475253) +++ head/sysutils/xen-tools/pkg-descr (nonexistent) @@ -1,5 +0,0 @@ -The xl program is the new tool for managing Xen guest domains. The program can -be used to create, pause, and shutdown domains. It can also be used to list -current domains, enable or pin VCPUs, and attach or detach virtual block devices - -WWW: https://wiki.xen.org/wiki/XL Property changes on: head/sysutils/xen-tools/pkg-descr ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/sysutils/xen-tools/distinfo =================================================================== --- head/sysutils/xen-tools/distinfo (revision 475253) +++ head/sysutils/xen-tools/distinfo (nonexistent) @@ -1,3 +0,0 @@ -TIMESTAMP = 1489085975 -SHA256 (xen-4.7.2.tar.gz) = 61494a56d9251e2108080f95b0dc8e3d175f1ba4da34603fc07b91cfebf358d5 -SIZE (xen-4.7.2.tar.gz) = 20714281 Property changes on: head/sysutils/xen-tools/distinfo ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/sysutils/xen-tools/pkg-plist =================================================================== --- head/sysutils/xen-tools/pkg-plist (revision 475253) +++ head/sysutils/xen-tools/pkg-plist (nonexistent) @@ -1,606 +0,0 @@ -bin/pygrub -bin/xen-cpuid -bin/xen-detect -bin/xenalyze -bin/xencons -bin/xencov_split -bin/xenstore -bin/xenstore-chmod -bin/xenstore-control -bin/xenstore-exists -bin/xenstore-list -bin/xenstore-ls -bin/xenstore-read -bin/xenstore-rm -bin/xenstore-watch -bin/xenstore-write -bin/xentrace_format -etc/bash_completion.d/xl.sh -etc/rc.d/xencommons -etc/rc.d/xendriverdomain -%%ETCDIR%%/README -%%ETCDIR%%/README.incompatibilities -%%ETCDIR%%/cpupool -%%ETCDIR%%/scripts/block -%%ETCDIR%%/scripts/hotplugpath.sh -%%ETCDIR%%/scripts/vif-bridge -%%ETCDIR%%/xl.conf -%%ETCDIR%%/xlexample.hvm -%%ETCDIR%%/xlexample.pvlinux -include/_libxl_list.h -include/_libxl_types.h -include/_libxl_types_json.h -include/fsimage.h -include/fsimage_grub.h -include/fsimage_plugin.h -include/libxl.h -include/libxl_event.h -include/libxl_json.h -include/libxl_utils.h -include/libxl_uuid.h -include/libxlutil.h -include/xen/COPYING -include/xen/arch-arm.h -include/xen/arch-arm/hvm/save.h -include/xen/arch-x86/cpufeatureset.h -include/xen/arch-x86/cpuid.h -include/xen/arch-x86/hvm/save.h -include/xen/arch-x86/pmu.h -include/xen/arch-x86/xen-mca.h -include/xen/arch-x86/xen-x86_32.h -include/xen/arch-x86/xen-x86_64.h -include/xen/arch-x86/xen.h -include/xen/arch-x86_32.h -include/xen/arch-x86_64.h -include/xen/callback.h -include/xen/dom0_ops.h -include/xen/domctl.h -include/xen/elfnote.h -include/xen/errno.h -include/xen/event_channel.h -include/xen/features.h -include/xen/foreign/arm32.h -include/xen/foreign/arm64.h -include/xen/foreign/x86_32.h -include/xen/foreign/x86_64.h -include/xen/gcov.h -include/xen/grant_table.h -include/xen/hvm/e820.h -include/xen/hvm/hvm_info_table.h -include/xen/hvm/hvm_op.h -include/xen/hvm/hvm_vcpu.h -include/xen/hvm/hvm_xs_strings.h -include/xen/hvm/ioreq.h -include/xen/hvm/params.h -include/xen/hvm/pvdrivers.h -include/xen/hvm/save.h -include/xen/io/blkif.h -include/xen/io/console.h -include/xen/io/fbif.h -include/xen/io/fsif.h -include/xen/io/kbdif.h -include/xen/io/libxenvchan.h -include/xen/io/netif.h -include/xen/io/pciif.h -include/xen/io/protocols.h -include/xen/io/ring.h -include/xen/io/tpmif.h -include/xen/io/usbif.h -include/xen/io/vscsiif.h -include/xen/io/xenbus.h -include/xen/io/xs_wire.h -include/xen/kexec.h -include/xen/memory.h -include/xen/nmi.h -include/xen/physdev.h -include/xen/platform.h -include/xen/pmu.h -include/xen/sched.h -include/xen/sys/evtchn.h -include/xen/sys/privcmd.h -include/xen/sysctl.h -include/xen/tmem.h -include/xen/trace.h -include/xen/vcpu.h -include/xen/version.h -include/xen/vm_event.h -include/xen/xen-compat.h -include/xen/xen.h -include/xen/xencomm.h -include/xen/xenoprof.h -include/xen/xsm/flask_op.h -include/xencall.h -include/xenctrl.h -include/xenctrl_compat.h -include/xenevtchn.h -include/xenforeignmemory.h -include/xengnttab.h -include/xenguest.h -include/xenstat.h -include/xenstore-compat/xs.h -include/xenstore-compat/xs_lib.h -include/xenstore.h -include/xenstore_lib.h -include/xentoollog.h -include/xs.h -include/xs_lib.h -lib/fs/ext2fs/fsimage.so -lib/fs/fat/fsimage.so -lib/fs/iso9660/fsimage.so -lib/fs/reiserfs/fsimage.so -lib/fs/ufs/fsimage.so -lib/fs/xfs/fsimage.so -lib/fs/zfs/fsimage.so -lib/libfsimage.so -lib/libfsimage.so.1.0 -lib/libfsimage.so.1.0.0 -lib/libxencall.a -lib/libxencall.so -lib/libxencall.so.1 -lib/libxencall.so.1.0 -lib/libxenctrl.a -lib/libxenctrl.so -lib/libxenctrl.so.4.7 -lib/libxenctrl.so.4.7.0 -lib/libxenevtchn.a -lib/libxenevtchn.so -lib/libxenevtchn.so.1 -lib/libxenevtchn.so.1.0 -lib/libxenforeignmemory.a -lib/libxenforeignmemory.so -lib/libxenforeignmemory.so.1 -lib/libxenforeignmemory.so.1.0 -lib/libxengnttab.a -lib/libxengnttab.so -lib/libxengnttab.so.1 -lib/libxengnttab.so.1.0 -lib/libxenguest.a -lib/libxenguest.so -lib/libxenguest.so.4.7 -lib/libxenguest.so.4.7.0 -lib/libxenlight.a -lib/libxenlight.so -lib/libxenlight.so.4.7 -lib/libxenlight.so.4.7.0 -lib/libxenstat.a -lib/libxenstat.so -lib/libxenstat.so.0 -lib/libxenstat.so.0.0 -lib/libxenstore.a -lib/libxenstore.so -lib/libxenstore.so.3.0 -lib/libxenstore.so.3.0.3 -lib/libxentoollog.a -lib/libxentoollog.so -lib/libxentoollog.so.1 -lib/libxentoollog.so.1.0 -lib/libxlutil.a -lib/libxlutil.so -lib/libxlutil.so.4.7 -lib/libxlutil.so.4.7.0 -%%PYTHON_SITELIBDIR%%/fsimage.so -%%PYTHON_SITELIBDIR%%/grub/ExtLinuxConf.py -%%PYTHON_SITELIBDIR%%/grub/ExtLinuxConf.pyc -%%PYTHON_SITELIBDIR%%/grub/GrubConf.py -%%PYTHON_SITELIBDIR%%/grub/GrubConf.pyc -%%PYTHON_SITELIBDIR%%/grub/LiloConf.py -%%PYTHON_SITELIBDIR%%/grub/LiloConf.pyc -%%PYTHON_SITELIBDIR%%/grub/__init__.py -%%PYTHON_SITELIBDIR%%/grub/__init__.pyc -%%PYTHON_SITELIBDIR%%/pygrub-0.3-py%%PYTHON_VER%%.egg-info -%%PYTHON_SITELIBDIR%%/xen-3.0-py%%PYTHON_VER%%.egg-info -%%PYTHON_SITELIBDIR%%/xen/__init__.py -%%PYTHON_SITELIBDIR%%/xen/__init__.pyc -%%PYTHON_SITELIBDIR%%/xen/lowlevel/__init__.py -%%PYTHON_SITELIBDIR%%/xen/lowlevel/__init__.pyc -%%PYTHON_SITELIBDIR%%/xen/lowlevel/xc.so -%%PYTHON_SITELIBDIR%%/xen/lowlevel/xs.so -%%PYTHON_SITELIBDIR%%/xen/migration/__init__.py -%%PYTHON_SITELIBDIR%%/xen/migration/__init__.pyc -%%PYTHON_SITELIBDIR%%/xen/migration/legacy.py -%%PYTHON_SITELIBDIR%%/xen/migration/legacy.pyc -%%PYTHON_SITELIBDIR%%/xen/migration/libxc.py -%%PYTHON_SITELIBDIR%%/xen/migration/libxc.pyc -%%PYTHON_SITELIBDIR%%/xen/migration/libxl.py -%%PYTHON_SITELIBDIR%%/xen/migration/libxl.pyc -%%PYTHON_SITELIBDIR%%/xen/migration/public.py -%%PYTHON_SITELIBDIR%%/xen/migration/public.pyc -%%PYTHON_SITELIBDIR%%/xen/migration/tests.py -%%PYTHON_SITELIBDIR%%/xen/migration/tests.pyc -%%PYTHON_SITELIBDIR%%/xen/migration/verify.py -%%PYTHON_SITELIBDIR%%/xen/migration/verify.pyc -%%PYTHON_SITELIBDIR%%/xen/migration/xl.py -%%PYTHON_SITELIBDIR%%/xen/migration/xl.pyc -lib/xen/bin/convert-legacy-stream -lib/xen/bin/libxl-save-helper -lib/xen/bin/lsevtchn -lib/xen/bin/pygrub -lib/xen/bin/qemu-system-i386 -lib/xen/bin/readnotes -lib/xen/bin/verify-stream-v2 -lib/xen/bin/xen-init-dom0 -lib/xen/bin/xenconsole -lib/xen/bin/xenctx -lib/xen/bin/xenpaging -lib/xen/bin/xenpvnetboot -lib/xen/boot/hvmloader -man/man1/xenstore-chmod.1.gz -man/man1/xenstore-ls.1.gz -man/man1/xenstore.1.gz -man/man1/xentop.1.gz -man/man1/xentrace_format.1.gz -man/man1/xl.1.gz -man/man5/xl.cfg.5.gz -man/man5/xl.conf.5.gz -man/man5/xlcpupool.cfg.5.gz -man/man8/xentrace.8.gz -sbin/flask-get-bool -sbin/flask-getenforce -sbin/flask-label-pci -sbin/flask-loadpolicy -sbin/flask-set-bool -sbin/flask-setenforce -sbin/gdbsx -sbin/gtracestat -sbin/gtraceview -sbin/kdd -sbin/xen-bugtool -sbin/xen-hptool -sbin/xen-hvmcrash -sbin/xen-hvmctx -sbin/xen-lowmemd -sbin/xen-mfndump -sbin/xen-ringwatch -sbin/xen-tmem-list-parse -sbin/xen-livepatch -sbin/xenbaked -sbin/xenconsoled -sbin/xencov -sbin/xenlockprof -sbin/xenmon.py -sbin/xenperf -sbin/xenpm -sbin/xenpmd -sbin/xenstored -sbin/xentop -sbin/xentrace -sbin/xentrace_setmask -sbin/xentrace_setsize -sbin/xenwatchdogd -sbin/xl -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/.deps -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,arch-arm,hvm,save.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,arch-arm.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,callback.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,dom0_ops.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,domctl.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,elfnote.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,errno.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,event_channel.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,features.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,gcov.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,grant_table.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,e820.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,hvm_info_table.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,hvm_op.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,hvm_vcpu.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,hvm_xs_strings.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,ioreq.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,params.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,pvdrivers.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,save.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,blkif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,console.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,fbif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,fsif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,kbdif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,libxenvchan.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,netif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,pciif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,protocols.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,ring.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,tpmif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,usbif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,vscsiif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,xenbus.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,xs_wire.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,kexec.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,memory.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,nmi.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,physdev.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,platform.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,pmu.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,sched.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,sysctl.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,tmem.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,trace.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,vcpu.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,version.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,vm_event.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,xen-compat.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,xen.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,xencomm.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,xenoprof.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,xsm,flask_op.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,xen,errno.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/index.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/index.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/.deps -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86,cpufeatureset.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86,cpuid.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86,hvm,save.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86,pmu.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86,xen-mca.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86,xen-x86_32.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86,xen.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86_32.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,callback.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,dom0_ops.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,domctl.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,elfnote.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,errno.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,event_channel.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,features.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,gcov.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,grant_table.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,e820.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,hvm_info_table.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,hvm_op.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,hvm_vcpu.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,hvm_xs_strings.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,ioreq.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,params.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,pvdrivers.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,save.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,blkif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,console.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,fbif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,fsif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,kbdif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,libxenvchan.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,netif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,pciif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,protocols.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,ring.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,tpmif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,usbif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,vscsiif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,xenbus.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,xs_wire.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,kexec.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,memory.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,nmi.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,physdev.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,platform.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,pmu.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,sched.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,sysctl.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,tmem.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,trace.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,vcpu.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,version.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,vm_event.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,xen-compat.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,xen.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,xencomm.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,xenoprof.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,xsm,flask_op.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,xen,errno.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/index.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/.deps -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86,cpufeatureset.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86,cpuid.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86,hvm,save.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86,pmu.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86,xen-mca.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86,xen-x86_64.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86,xen.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86_64.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,callback.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,dom0_ops.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,domctl.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,elfnote.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,errno.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,event_channel.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,features.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,gcov.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,grant_table.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,e820.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,hvm_info_table.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,hvm_op.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,hvm_vcpu.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,hvm_xs_strings.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,ioreq.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,params.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,pvdrivers.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,save.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,blkif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,console.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,fbif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,fsif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,kbdif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,libxenvchan.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,netif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,pciif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,protocols.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,ring.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,tpmif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,usbif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,vscsiif.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,xenbus.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,xs_wire.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,kexec.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,memory.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,nmi.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,physdev.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,platform.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,pmu.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,sched.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,sysctl.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,tmem.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,trace.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,vcpu.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,version.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,vm_event.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,xen-compat.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,xen.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,xencomm.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,xenoprof.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,xsm,flask_op.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,xen,errno.h.html -%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/index.html -%%PORTDOCS%%%%DOCSDIR%%/html/index.html -%%PORTDOCS%%%%DOCSDIR%%/html/man/index.html -%%PORTDOCS%%%%DOCSDIR%%/html/man/xenstore-chmod.1.html -%%PORTDOCS%%%%DOCSDIR%%/html/man/xenstore-ls.1.html -%%PORTDOCS%%%%DOCSDIR%%/html/man/xenstore.1.html -%%PORTDOCS%%%%DOCSDIR%%/html/man/xentop.1.html -%%PORTDOCS%%%%DOCSDIR%%/html/man/xentrace.8.html -%%PORTDOCS%%%%DOCSDIR%%/html/man/xentrace_format.1.html -%%PORTDOCS%%%%DOCSDIR%%/html/man/xl.1.html -%%PORTDOCS%%%%DOCSDIR%%/html/man/xl.cfg.5.html -%%PORTDOCS%%%%DOCSDIR%%/html/man/xl.conf.5.html -%%PORTDOCS%%%%DOCSDIR%%/html/man/xlcpupool.cfg.5.html -%%PORTDOCS%%%%DOCSDIR%%/html/misc/amd-ucode-container.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/booting.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/device-tree/booting.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/device-tree/guest.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/device-tree/index.html -%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/device-tree/passthrough.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/early-printk.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/index.html -%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/passthrough.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/block-scripts.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/channel.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/console.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/coverage.html -%%PORTDOCS%%%%DOCSDIR%%/html/misc/crashdb.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/distro_mapping.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/dump-core-format.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/efi.html -%%PORTDOCS%%%%DOCSDIR%%/html/misc/grant-tables.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/hvm-emulated-unplug.html -%%PORTDOCS%%%%DOCSDIR%%/html/misc/hvmlite.html -%%PORTDOCS%%%%DOCSDIR%%/html/misc/index.html -%%PORTDOCS%%%%DOCSDIR%%/html/misc/kconfig-language.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/kconfig.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/kexec_and_kdump.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/libxl_memory.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/pci-device-reservations.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/printk-formats.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/pvh-readme.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/pvh.html -%%PORTDOCS%%%%DOCSDIR%%/html/misc/qemu-backends.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/qemu-deprivilege.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/stubdom.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/tscmode.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/vbd-interface.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/vtd-pi.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/vtd.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/vtpm-platforms.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/vtpm.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/vtpmmgr.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/x86-xenpv-bootloader.html -%%PORTDOCS%%%%DOCSDIR%%/html/misc/xen-command-line.html -%%PORTDOCS%%%%DOCSDIR%%/html/misc/xen-error-handling.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/xenmon.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/xenpaging.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/xenstore-paths.html -%%PORTDOCS%%%%DOCSDIR%%/html/misc/xenstore-ring.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/xenstore.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/xl-disk-configuration.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/xl-network-configuration.html -%%PORTDOCS%%%%DOCSDIR%%/html/misc/xl-numa-placement.html -%%PORTDOCS%%%%DOCSDIR%%/html/misc/xl-psr.html -%%PORTDOCS%%%%DOCSDIR%%/html/misc/xsm-flask.txt -%%PORTDOCS%%%%DOCSDIR%%/html/misc/livepatch.html -libdata/pkgconfig/xenlight.pc -libdata/pkgconfig/xlutil.pc -share/qemu-xen/qemu/QEMU,cgthree.bin -share/qemu-xen/qemu/QEMU,tcx.bin -share/qemu-xen/qemu/acpi-dsdt.aml -share/qemu-xen/qemu/bamboo.dtb -share/qemu-xen/qemu/bios-256k.bin -share/qemu-xen/qemu/bios.bin -share/qemu-xen/qemu/efi-e1000.rom -share/qemu-xen/qemu/efi-eepro100.rom -share/qemu-xen/qemu/efi-ne2k_pci.rom -share/qemu-xen/qemu/efi-pcnet.rom -share/qemu-xen/qemu/efi-rtl8139.rom -share/qemu-xen/qemu/efi-virtio.rom -share/qemu-xen/qemu/keymaps/ar -share/qemu-xen/qemu/keymaps/bepo -share/qemu-xen/qemu/keymaps/common -share/qemu-xen/qemu/keymaps/cz -share/qemu-xen/qemu/keymaps/da -share/qemu-xen/qemu/keymaps/de -share/qemu-xen/qemu/keymaps/de-ch -share/qemu-xen/qemu/keymaps/en-gb -share/qemu-xen/qemu/keymaps/en-us -share/qemu-xen/qemu/keymaps/es -share/qemu-xen/qemu/keymaps/et -share/qemu-xen/qemu/keymaps/fi -share/qemu-xen/qemu/keymaps/fo -share/qemu-xen/qemu/keymaps/fr -share/qemu-xen/qemu/keymaps/fr-be -share/qemu-xen/qemu/keymaps/fr-ca -share/qemu-xen/qemu/keymaps/fr-ch -share/qemu-xen/qemu/keymaps/hr -share/qemu-xen/qemu/keymaps/hu -share/qemu-xen/qemu/keymaps/is -share/qemu-xen/qemu/keymaps/it -share/qemu-xen/qemu/keymaps/ja -share/qemu-xen/qemu/keymaps/lt -share/qemu-xen/qemu/keymaps/lv -share/qemu-xen/qemu/keymaps/mk -share/qemu-xen/qemu/keymaps/modifiers -share/qemu-xen/qemu/keymaps/nl -share/qemu-xen/qemu/keymaps/nl-be -share/qemu-xen/qemu/keymaps/no -share/qemu-xen/qemu/keymaps/pl -share/qemu-xen/qemu/keymaps/pt -share/qemu-xen/qemu/keymaps/pt-br -share/qemu-xen/qemu/keymaps/ru -share/qemu-xen/qemu/keymaps/sl -share/qemu-xen/qemu/keymaps/sv -share/qemu-xen/qemu/keymaps/th -share/qemu-xen/qemu/keymaps/tr -share/qemu-xen/qemu/kvmvapic.bin -share/qemu-xen/qemu/linuxboot.bin -share/qemu-xen/qemu/multiboot.bin -share/qemu-xen/qemu/openbios-ppc -share/qemu-xen/qemu/openbios-sparc32 -share/qemu-xen/qemu/openbios-sparc64 -share/qemu-xen/qemu/palcode-clipper -share/qemu-xen/qemu/petalogix-ml605.dtb -share/qemu-xen/qemu/petalogix-s3adsp1800.dtb -share/qemu-xen/qemu/ppc_rom.bin -share/qemu-xen/qemu/pxe-e1000.rom -share/qemu-xen/qemu/pxe-eepro100.rom -share/qemu-xen/qemu/pxe-ne2k_pci.rom -share/qemu-xen/qemu/pxe-pcnet.rom -share/qemu-xen/qemu/pxe-rtl8139.rom -share/qemu-xen/qemu/pxe-virtio.rom -share/qemu-xen/qemu/q35-acpi-dsdt.aml -share/qemu-xen/qemu/qemu-icon.bmp -share/qemu-xen/qemu/qemu_logo_no_text.svg -share/qemu-xen/qemu/s390-ccw.img -share/qemu-xen/qemu/s390-zipl.rom -share/qemu-xen/qemu/sgabios.bin -share/qemu-xen/qemu/slof.bin -share/qemu-xen/qemu/spapr-rtas.bin -share/qemu-xen/qemu/trace-events -share/qemu-xen/qemu/u-boot.e500 -share/qemu-xen/qemu/vgabios-cirrus.bin -share/qemu-xen/qemu/vgabios-qxl.bin -share/qemu-xen/qemu/vgabios-stdvga.bin -share/qemu-xen/qemu/vgabios-virtio.bin -share/qemu-xen/qemu/vgabios-vmware.bin -share/qemu-xen/qemu/vgabios.bin -@dir %%ETCDIR%%/auto -@dir /var/crash/xen -@dir /var/db/xen/xenpaging -@dir /var/db/xen -@dir /var/db/xenstored -@dir /var/log/xen -@dir /var/run/xen Property changes on: head/sysutils/xen-tools/pkg-plist ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/sysutils/xen-tools/Makefile =================================================================== --- head/sysutils/xen-tools/Makefile (revision 475253) +++ head/sysutils/xen-tools/Makefile (nonexistent) @@ -1,93 +0,0 @@ -# $FreeBSD$ - -PORTNAME= xen -PKGNAMESUFFIX= -tools -PORTVERSION= 4.7.2 -PORTREVISION= 4 -CATEGORIES= sysutils emulators -MASTER_SITES= http://downloads.xenproject.org/release/xen/${PORTVERSION}/ - -MAINTAINER= royger@FreeBSD.org -COMMENT= Xen management tool, based on LibXenlight - -LICENSE= GPLv2 LGPL3 -LICENSE_COMB= multi - -BROKEN_FreeBSD_10= does not build - -LIB_DEPENDS= libyajl.so:devel/yajl \ - liblzo2.so:archivers/lzo2 \ - libpixman-1.so:x11/pixman \ - libargp.so:devel/argp-standalone -BUILD_DEPENDS= dev86>0:devel/dev86 \ - seabios>0:misc/seabios \ - markdown>0:textproc/markdown - -OPTIONS_DEFINE= DOCS - -ONLY_FOR_ARCHS= amd64 -ONLY_FOR_ARCHS_REASON= "not yet ported to anything other than amd64" - -USES= cpe gettext gmake libtool localbase:ldflags perl5 pkgconfig \ - python:2.7 shebangfix -USE_GNOME= glib20 -USE_LDCONFIG= yes -GNU_CONFIGURE= yes -MAKE_ARGS= clang=y -QEMU_ARGS= --disable-gtk \ - --disable-smartcard-nss \ - --disable-sdl \ - --disable-vte \ - --disable-curses \ - --disable-tools \ - --disable-curl \ - --cxx=c++ - -EXTRA_PATCHES= ${FILESDIR}/var_paths.patch:-p1 \ - ${FILESDIR}/0001-libxl-fix-creation-of-pkgconf-install-dir.patch:-p1 \ - ${FILESDIR}/0001-tools-configure-fix-pkg-config-install-path-for-Free.patch:-p1 \ - ${FILESDIR}/0001-libs-xenstore-set-correct-FreeBSD-device.patch:-p1 \ - ${FILESDIR}/kdd.patch:-p1 \ - ${FILESDIR}/0001-xenstored-apply-a-write-transaction-rate-limit.patch:-p1 \ - ${FILESDIR}/0002-xenstored-Log-when-the-write-transaction-rate-limit-.patch:-p1 \ - ${FILESDIR}/0001-Backport-of-commit-858dba.patch:-p1 - -CONFIGURE_ARGS+= --with-extra-qemuu-configure-args="${QEMU_ARGS}" \ - --with-system-seabios=${LOCALBASE}/share/seabios/bios.bin - -# Disable bash and xgettext tests, they are not needed on FreeBSD. -CONFIGURE_ENV+= ac_cv_path_BASH=${TRUE} - -SHEBANG_FILES= tools/misc/xen-ringwatch \ - tools/misc/xencov_split \ - tools/python/scripts/convert-legacy-stream \ - tools/python/scripts/verify-stream-v2 \ - tools/xenmon/xenmon.py - -ALL_TARGET= tools docs -INSTALL_TARGET= install-tools install-docs - -.include - -.if ${OPSYS} != FreeBSD -IGNORE= only supported on FreeBSD -.endif - -post-patch: - @${REINPLACE_CMD} "s,x86_64,amd64,g" ${WRKSRC}/tools/configure - @${REINPLACE_CMD} -e "s,/var/lib,/var/db,g" \ - ${WRKSRC}/tools/Makefile \ - ${WRKSRC}/tools/libxc/include/xenguest.h \ - ${WRKSRC}/tools/libxl/libxl_dom.c \ - ${WRKSRC}/tools/libxl/libxl_dm.c \ - ${WRKSRC}/tools/qemu-xen-traditional/i386-dm/helper2.c \ - ${WRKSRC}/docs/man/* - @for p in `ls ${FILESDIR}/*qemuu*.patch 2>/dev/null`; do \ - ${ECHO_CMD} "====> Applying $${p##*/}" ; \ - ${PATCH} -s -p1 -i $${p} -d ${WRKSRC}/tools/qemu-xen ; \ - done - -post-install: - ${MKDIR} ${STAGEDIR}/var/run/xen - -.include Property changes on: head/sysutils/xen-tools/Makefile ___________________________________________________________________ Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/sysutils/xen-tools/files/0001-xenstored-apply-a-write-transaction-rate-limit.patch =================================================================== --- head/sysutils/xen-tools/files/0001-xenstored-apply-a-write-transaction-rate-limit.patch (revision 475253) +++ head/sysutils/xen-tools/files/0001-xenstored-apply-a-write-transaction-rate-limit.patch (nonexistent) @@ -1,456 +0,0 @@ -From bfe42a836450591bb41f4f6393c42dbb0d72abb9 Mon Sep 17 00:00:00 2001 -From: Ian Jackson -Date: Sat, 18 Mar 2017 16:12:26 +0000 -Subject: [PATCH 01/15] xenstored: apply a write transaction rate limit - -This avoids a rogue client being about to stall another client (eg the -toolstack) indefinitely. - -This is XSA-206. - -Signed-off-by: Ian Jackson - -Backported to 4.8 (not entirely trivial). - -Reported-by: Juergen Gross -Signed-off-by: George Dunlap -Acked-by: Ian Jackson ---- - tools/xenstore/Makefile | 3 +- - tools/xenstore/xenstored_core.c | 9 ++ - tools/xenstore/xenstored_core.h | 6 + - tools/xenstore/xenstored_domain.c | 215 +++++++++++++++++++++++++++++++++ - tools/xenstore/xenstored_domain.h | 25 ++++ - tools/xenstore/xenstored_transaction.c | 5 + - 6 files changed, 262 insertions(+), 1 deletion(-) - -diff --git a/tools/xenstore/Makefile b/tools/xenstore/Makefile -index d691b78..b458729 100644 ---- a/tools/xenstore/Makefile -+++ b/tools/xenstore/Makefile -@@ -31,6 +31,7 @@ XENSTORED_OBJS_$(CONFIG_FreeBSD) = xenstored_posix.o - XENSTORED_OBJS_$(CONFIG_MiniOS) = xenstored_minios.o - - XENSTORED_OBJS += $(XENSTORED_OBJS_y) -+LDLIBS_xenstored += -lrt - - ifneq ($(XENSTORE_STATIC_CLIENTS),y) - LIBXENSTORE := libxenstore.so -@@ -72,7 +73,7 @@ endif - $(XENSTORED_OBJS): CFLAGS += $(CFLAGS_libxengnttab) - - xenstored: $(XENSTORED_OBJS) -- $(CC) $^ $(LDFLAGS) $(LDLIBS_libxenevtchn) $(LDLIBS_libxengnttab) $(LDLIBS_libxenctrl) $(SOCKET_LIBS) -o $@ $(APPEND_LDFLAGS) -+ $(CC) $^ $(LDFLAGS) $(LDLIBS_libxenevtchn) $(LDLIBS_libxengnttab) $(LDLIBS_libxenctrl) $(LDLIBS_xenstored) $(SOCKET_LIBS) -o $@ $(APPEND_LDFLAGS) - - xenstored.a: $(XENSTORED_OBJS) - $(AR) cr $@ $^ -diff --git a/tools/xenstore/xenstored_core.c b/tools/xenstore/xenstored_core.c -index 51fb0b3..1aabc93 100644 ---- a/tools/xenstore/xenstored_core.c -+++ b/tools/xenstore/xenstored_core.c -@@ -357,6 +357,7 @@ static void initialize_fds(int sock, int *p_sock_pollfd_idx, - int *ptimeout) - { - struct connection *conn; -+ struct wrl_timestampt now; - - if (fds) - memset(fds, 0, sizeof(struct pollfd) * current_array_size); -@@ -376,8 +377,11 @@ static void initialize_fds(int sock, int *p_sock_pollfd_idx, - xce_pollfd_idx = set_fd(xenevtchn_fd(xce_handle), - POLLIN|POLLPRI); - -+ wrl_gettime_now(&now); -+ - list_for_each_entry(conn, &connections, list) { - if (conn->domain) { -+ wrl_check_timeout(conn->domain, now, ptimeout); - if (domain_can_read(conn) || - (domain_can_write(conn) && - !list_empty(&conn->out_list))) -@@ -810,6 +814,7 @@ static void delete_node_single(struct connection *conn, struct node *node) - corrupt(conn, "Could not delete '%s'", node->name); - return; - } -+ - domain_entry_dec(conn, node); - } - -@@ -949,6 +954,7 @@ static void do_write(struct connection *conn, struct buffered_data *in) - } - - add_change_node(conn->transaction, name, false); -+ wrl_apply_debit_direct(conn); - fire_watches(conn, name, false); - send_ack(conn, XS_WRITE); - } -@@ -973,6 +979,7 @@ static void do_mkdir(struct connection *conn, const char *name) - return; - } - add_change_node(conn->transaction, name, false); -+ wrl_apply_debit_direct(conn); - fire_watches(conn, name, false); - } - send_ack(conn, XS_MKDIR); -@@ -1098,6 +1105,7 @@ static void do_rm(struct connection *conn, const char *name) - - if (_rm(conn, node, name)) { - add_change_node(conn->transaction, name, true); -+ wrl_apply_debit_direct(conn); - fire_watches(conn, name, true); - send_ack(conn, XS_RM); - } -@@ -1173,6 +1181,7 @@ static void do_set_perms(struct connection *conn, struct buffered_data *in) - } - - add_change_node(conn->transaction, name, false); -+ wrl_apply_debit_direct(conn); - fire_watches(conn, name, false); - send_ack(conn, XS_SET_PERMS); - } -diff --git a/tools/xenstore/xenstored_core.h b/tools/xenstore/xenstored_core.h -index 3a497f7..a2a3427 100644 ---- a/tools/xenstore/xenstored_core.h -+++ b/tools/xenstore/xenstored_core.h -@@ -33,6 +33,12 @@ - #include "list.h" - #include "tdb.h" - -+#define MIN(a, b) (((a) < (b))? (a) : (b)) -+ -+typedef int32_t wrl_creditt; -+#define WRL_CREDIT_MAX (1000*1000*1000) -+/* ^ satisfies non-overflow condition for wrl_xfer_credit */ -+ - struct buffered_data - { - struct list_head list; -diff --git a/tools/xenstore/xenstored_domain.c b/tools/xenstore/xenstored_domain.c -index 47b4f03..486c96f 100644 ---- a/tools/xenstore/xenstored_domain.c -+++ b/tools/xenstore/xenstored_domain.c -@@ -21,6 +21,7 @@ - #include - #include - #include -+#include - - #include "utils.h" - #include "talloc.h" -@@ -74,6 +75,10 @@ struct domain - - /* number of watch for this domain */ - int nbwatch; -+ -+ /* write rate limit */ -+ wrl_creditt wrl_credit; /* [ -wrl_config_writecost, +_dburst ] */ -+ struct wrl_timestampt wrl_timestamp; - }; - - static LIST_HEAD(domains); -@@ -206,6 +211,8 @@ static int destroy_domain(void *_domain) - - fire_watches(NULL, "@releaseDomain", false); - -+ wrl_domain_destroy(domain); -+ - return 0; - } - -@@ -253,6 +260,9 @@ void handle_event(void) - bool domain_can_read(struct connection *conn) - { - struct xenstore_domain_interface *intf = conn->domain->interface; -+ -+ if (domain_is_unprivileged(conn) && conn->domain->wrl_credit < 0) -+ return false; - return (intf->req_cons != intf->req_prod); - } - -@@ -284,6 +294,8 @@ static struct domain *new_domain(void *context, unsigned int domid, - domain->domid = domid; - domain->path = talloc_domain_path(domain, domid); - -+ wrl_domain_new(domain); -+ - list_add(&domain->list, &domains); - talloc_set_destructor(domain, destroy_domain); - -@@ -747,6 +759,209 @@ int domain_watch(struct connection *conn) - : 0; - } - -+static wrl_creditt wrl_config_writecost = WRL_FACTOR; -+static wrl_creditt wrl_config_rate = WRL_RATE * WRL_FACTOR; -+static wrl_creditt wrl_config_dburst = WRL_DBURST * WRL_FACTOR; -+static wrl_creditt wrl_config_gburst = WRL_GBURST * WRL_FACTOR; -+static wrl_creditt wrl_config_newdoms_dburst = -+ WRL_DBURST * WRL_NEWDOMS * WRL_FACTOR; -+ -+long wrl_ntransactions; -+ -+static long wrl_ndomains; -+static wrl_creditt wrl_reserve; /* [-wrl_config_newdoms_dburst, +_gburst ] */ -+ -+void wrl_gettime_now(struct wrl_timestampt *now_wt) -+{ -+ struct timespec now_ts; -+ int r; -+ -+ r = clock_gettime(CLOCK_MONOTONIC, &now_ts); -+ if (r) -+ barf_perror("Could not find time (clock_gettime failed)"); -+ -+ now_wt->sec = now_ts.tv_sec; -+ now_wt->msec = now_ts.tv_nsec / 1000000; -+} -+ -+static void wrl_xfer_credit(wrl_creditt *debit, wrl_creditt debit_floor, -+ wrl_creditt *credit, wrl_creditt credit_ceil) -+ /* -+ * Transfers zero or more credit from "debit" to "credit". -+ * Transfers as much as possible while maintaining -+ * debit >= debit_floor and credit <= credit_ceil. -+ * (If that's violated already, does nothing.) -+ * -+ * Sufficient conditions to avoid overflow, either of: -+ * |every argument| <= 0x3fffffff -+ * |every argument| <= 1E9 -+ * |every argument| <= WRL_CREDIT_MAX -+ * (And this condition is preserved.) -+ */ -+{ -+ wrl_creditt xfer = MIN( *debit - debit_floor, -+ credit_ceil - *credit ); -+ if (xfer > 0) { -+ *debit -= xfer; -+ *credit += xfer; -+ } -+} -+ -+void wrl_domain_new(struct domain *domain) -+{ -+ domain->wrl_credit = 0; -+ wrl_gettime_now(&domain->wrl_timestamp); -+ wrl_ndomains++; -+ /* Steal up to DBURST from the reserve */ -+ wrl_xfer_credit(&wrl_reserve, -wrl_config_newdoms_dburst, -+ &domain->wrl_credit, wrl_config_dburst); -+} -+ -+void wrl_domain_destroy(struct domain *domain) -+{ -+ wrl_ndomains--; -+ /* -+ * Don't bother recalculating domain's credit - this just -+ * means we don't give the reserve the ending domain's credit -+ * for time elapsed since last update. -+ */ -+ wrl_xfer_credit(&domain->wrl_credit, 0, -+ &wrl_reserve, wrl_config_dburst); -+} -+ -+void wrl_credit_update(struct domain *domain, struct wrl_timestampt now) -+{ -+ /* -+ * We want to calculate -+ * credit += (now - timestamp) * RATE / ndoms; -+ * But we want it to saturate, and to avoid floating point. -+ * To avoid rounding errors from constantly adding small -+ * amounts of credit, we only add credit for whole milliseconds. -+ */ -+ long seconds = now.sec - domain->wrl_timestamp.sec; -+ long milliseconds = now.msec - domain->wrl_timestamp.msec; -+ long msec; -+ int64_t denom, num; -+ wrl_creditt surplus; -+ -+ seconds = MIN(seconds, 1000*1000); /* arbitrary, prevents overflow */ -+ msec = seconds * 1000 + milliseconds; -+ -+ if (msec < 0) -+ /* shouldn't happen with CLOCK_MONOTONIC */ -+ msec = 0; -+ -+ /* 32x32 -> 64 cannot overflow */ -+ denom = (int64_t)msec * wrl_config_rate; -+ num = (int64_t)wrl_ndomains * 1000; -+ /* denom / num <= 1E6 * wrl_config_rate, so with -+ reasonable wrl_config_rate, denom / num << 2^64 */ -+ -+ /* at last! */ -+ domain->wrl_credit = MIN( (int64_t)domain->wrl_credit + denom / num, -+ WRL_CREDIT_MAX ); -+ /* (maybe briefly violating the DBURST cap on wrl_credit) */ -+ -+ /* maybe take from the reserve to make us nonnegative */ -+ wrl_xfer_credit(&wrl_reserve, 0, -+ &domain->wrl_credit, 0); -+ -+ /* return any surplus (over DBURST) to the reserve */ -+ surplus = 0; -+ wrl_xfer_credit(&domain->wrl_credit, wrl_config_dburst, -+ &surplus, WRL_CREDIT_MAX); -+ wrl_xfer_credit(&surplus, 0, -+ &wrl_reserve, wrl_config_gburst); -+ /* surplus is now implicitly discarded */ -+ -+ domain->wrl_timestamp = now; -+ -+ trace("wrl: dom %4d %6ld msec %9ld credit %9ld reserve" -+ " %9ld discard\n", -+ domain->domid, -+ msec, -+ (long)domain->wrl_credit, (long)wrl_reserve, -+ (long)surplus); -+} -+ -+void wrl_check_timeout(struct domain *domain, -+ struct wrl_timestampt now, -+ int *ptimeout) -+{ -+ uint64_t num, denom; -+ int wakeup; -+ -+ wrl_credit_update(domain, now); -+ -+ if (domain->wrl_credit >= 0) -+ /* not blocked */ -+ return; -+ -+ if (!*ptimeout) -+ /* already decided on immediate wakeup, -+ so no need to calculate our timeout */ -+ return; -+ -+ /* calculate wakeup = now + -credit / (RATE / ndoms); */ -+ -+ /* credit cannot go more -ve than one transaction, -+ * so the first multiplication cannot overflow even 32-bit */ -+ num = (uint64_t)(-domain->wrl_credit * 1000) * wrl_ndomains; -+ denom = wrl_config_rate; -+ -+ wakeup = MIN( num / denom /* uint64_t */, INT_MAX ); -+ if (*ptimeout==-1 || wakeup < *ptimeout) -+ *ptimeout = wakeup; -+ -+ trace("wrl: domain %u credit=%ld (reserve=%ld) SLEEPING for %d\n", -+ domain->domid, -+ (long)domain->wrl_credit, (long)wrl_reserve, -+ wakeup); -+} -+ -+void wrl_apply_debit_actual(struct domain *domain) -+{ -+ struct wrl_timestampt now; -+ -+ if (!domain) -+ /* sockets escape the write rate limit */ -+ return; -+ -+ wrl_gettime_now(&now); -+ wrl_credit_update(domain, now); -+ -+ domain->wrl_credit -= wrl_config_writecost; -+ trace("wrl: domain %u credit=%ld (reserve=%ld)\n", -+ domain->domid, -+ (long)domain->wrl_credit, (long)wrl_reserve); -+} -+ -+void wrl_apply_debit_direct(struct connection *conn) -+{ -+ if (!conn) -+ /* some writes are generated internally */ -+ return; -+ -+ if (conn->transaction) -+ /* these are accounted for when the transaction ends */ -+ return; -+ -+ if (!wrl_ntransactions) -+ /* we don't conflict with anyone */ -+ return; -+ -+ wrl_apply_debit_actual(conn->domain); -+} -+ -+void wrl_apply_debit_trans_commit(struct connection *conn) -+{ -+ if (wrl_ntransactions <= 1) -+ /* our own transaction appears in the counter */ -+ return; -+ -+ wrl_apply_debit_actual(conn->domain); -+} -+ - /* - * Local variables: - * c-file-style: "linux" -diff --git a/tools/xenstore/xenstored_domain.h b/tools/xenstore/xenstored_domain.h -index 83488ed..bdc4044 100644 ---- a/tools/xenstore/xenstored_domain.h -+++ b/tools/xenstore/xenstored_domain.h -@@ -65,4 +65,29 @@ void domain_watch_inc(struct connection *conn); - void domain_watch_dec(struct connection *conn); - int domain_watch(struct connection *conn); - -+/* Write rate limiting */ -+ -+#define WRL_FACTOR 1000 /* for fixed-point arithmetic */ -+#define WRL_RATE 200 -+#define WRL_DBURST 10 -+#define WRL_GBURST 1000 -+#define WRL_NEWDOMS 5 -+ -+struct wrl_timestampt { -+ time_t sec; -+ int msec; -+}; -+ -+extern long wrl_ntransactions; -+ -+void wrl_gettime_now(struct wrl_timestampt *now_ts); -+void wrl_domain_new(struct domain *domain); -+void wrl_domain_destroy(struct domain *domain); -+void wrl_credit_update(struct domain *domain, struct wrl_timestampt now); -+void wrl_check_timeout(struct domain *domain, -+ struct wrl_timestampt now, -+ int *ptimeout); -+void wrl_apply_debit_direct(struct connection *conn); -+void wrl_apply_debit_trans_commit(struct connection *conn); -+ - #endif /* _XENSTORED_DOMAIN_H */ -diff --git a/tools/xenstore/xenstored_transaction.c b/tools/xenstore/xenstored_transaction.c -index d0e4739..a4b328f 100644 ---- a/tools/xenstore/xenstored_transaction.c -+++ b/tools/xenstore/xenstored_transaction.c -@@ -116,6 +116,7 @@ static int destroy_transaction(void *_transaction) - { - struct transaction *trans = _transaction; - -+ wrl_ntransactions--; - trace_destroy(trans, "transaction"); - if (trans->tdb) - tdb_close(trans->tdb); -@@ -179,6 +180,7 @@ void do_transaction_start(struct connection *conn, struct buffered_data *in) - talloc_steal(conn, trans); - talloc_set_destructor(trans, destroy_transaction); - conn->transaction_started++; -+ wrl_ntransactions++; - - snprintf(id_str, sizeof(id_str), "%u", trans->id); - send_reply(conn, XS_TRANSACTION_START, id_str, strlen(id_str)+1); -@@ -213,6 +215,9 @@ void do_transaction_end(struct connection *conn, const char *arg) - send_error(conn, EAGAIN); - return; - } -+ -+ wrl_apply_debit_trans_commit(conn); -+ - if (!replace_tdb(trans->tdb_name, trans->tdb)) { - send_error(conn, errno); - return; --- -2.1.4 - Property changes on: head/sysutils/xen-tools/files/0001-xenstored-apply-a-write-transaction-rate-limit.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/sysutils/xen-tools/files/0002-xenstored-Log-when-the-write-transaction-rate-limit-.patch =================================================================== --- head/sysutils/xen-tools/files/0002-xenstored-Log-when-the-write-transaction-rate-limit-.patch (revision 475253) +++ head/sysutils/xen-tools/files/0002-xenstored-Log-when-the-write-transaction-rate-limit-.patch (nonexistent) @@ -1,113 +0,0 @@ -From 1d713bf29548ee3e48c3170bafe2863d17694e90 Mon Sep 17 00:00:00 2001 -From: Ian Jackson -Date: Sat, 18 Mar 2017 16:39:31 +0000 -Subject: [PATCH 02/15] xenstored: Log when the write transaction rate limit - bites - -Reported-by: Juergen Gross -Signed-off-by: Ian Jackson ---- - tools/xenstore/xenstored_core.c | 1 + - tools/xenstore/xenstored_domain.c | 25 +++++++++++++++++++++++++ - tools/xenstore/xenstored_domain.h | 2 ++ - 3 files changed, 28 insertions(+) - -diff --git a/tools/xenstore/xenstored_core.c b/tools/xenstore/xenstored_core.c -index 1aabc93..907b44f 100644 ---- a/tools/xenstore/xenstored_core.c -+++ b/tools/xenstore/xenstored_core.c -@@ -378,6 +378,7 @@ static void initialize_fds(int sock, int *p_sock_pollfd_idx, - POLLIN|POLLPRI); - - wrl_gettime_now(&now); -+ wrl_log_periodic(now); - - list_for_each_entry(conn, &connections, list) { - if (conn->domain) { -diff --git a/tools/xenstore/xenstored_domain.c b/tools/xenstore/xenstored_domain.c -index 486c96f..75cfad1 100644 ---- a/tools/xenstore/xenstored_domain.c -+++ b/tools/xenstore/xenstored_domain.c -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - - #include "utils.h" - #include "talloc.h" -@@ -79,6 +80,7 @@ struct domain - /* write rate limit */ - wrl_creditt wrl_credit; /* [ -wrl_config_writecost, +_dburst ] */ - struct wrl_timestampt wrl_timestamp; -+ bool wrl_delay_logged; - }; - - static LIST_HEAD(domains); -@@ -770,6 +772,7 @@ long wrl_ntransactions; - - static long wrl_ndomains; - static wrl_creditt wrl_reserve; /* [-wrl_config_newdoms_dburst, +_gburst ] */ -+static time_t wrl_log_last_warning; /* 0: no previous warning */ - - void wrl_gettime_now(struct wrl_timestampt *now_wt) - { -@@ -919,6 +922,9 @@ void wrl_check_timeout(struct domain *domain, - wakeup); - } - -+#define WRL_LOG(now, ...) \ -+ (syslog(LOG_WARNING, "write rate limit: " __VA_ARGS__)) -+ - void wrl_apply_debit_actual(struct domain *domain) - { - struct wrl_timestampt now; -@@ -934,6 +940,25 @@ void wrl_apply_debit_actual(struct domain *domain) - trace("wrl: domain %u credit=%ld (reserve=%ld)\n", - domain->domid, - (long)domain->wrl_credit, (long)wrl_reserve); -+ -+ if (domain->wrl_credit < 0) { -+ if (!domain->wrl_delay_logged++) { -+ WRL_LOG(now, "domain %ld is affected", -+ (long)domain->domid); -+ } else if (!wrl_log_last_warning) { -+ WRL_LOG(now, "rate limiting restarts"); -+ } -+ wrl_log_last_warning = now.sec; -+ } -+} -+ -+void wrl_log_periodic(struct wrl_timestampt now) -+{ -+ if (wrl_log_last_warning && -+ (now.sec - wrl_log_last_warning) > WRL_LOGEVERY) { -+ WRL_LOG(now, "not in force recently"); -+ wrl_log_last_warning = 0; -+ } - } - - void wrl_apply_debit_direct(struct connection *conn) -diff --git a/tools/xenstore/xenstored_domain.h b/tools/xenstore/xenstored_domain.h -index bdc4044..2b963ed 100644 ---- a/tools/xenstore/xenstored_domain.h -+++ b/tools/xenstore/xenstored_domain.h -@@ -72,6 +72,7 @@ int domain_watch(struct connection *conn); - #define WRL_DBURST 10 - #define WRL_GBURST 1000 - #define WRL_NEWDOMS 5 -+#define WRL_LOGEVERY 120 /* seconds */ - - struct wrl_timestampt { - time_t sec; -@@ -87,6 +88,7 @@ void wrl_credit_update(struct domain *domain, struct wrl_timestampt now); - void wrl_check_timeout(struct domain *domain, - struct wrl_timestampt now, - int *ptimeout); -+void wrl_log_periodic(struct wrl_timestampt now); - void wrl_apply_debit_direct(struct connection *conn); - void wrl_apply_debit_trans_commit(struct connection *conn); - --- -2.1.4 - Property changes on: head/sysutils/xen-tools/files/0002-xenstored-Log-when-the-write-transaction-rate-limit-.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/sysutils/xen-tools/files/var_paths.patch =================================================================== --- head/sysutils/xen-tools/files/var_paths.patch (revision 475253) +++ head/sysutils/xen-tools/files/var_paths.patch (nonexistent) @@ -1,13 +0,0 @@ -diff --git a/config/FreeBSD.mk b/config/FreeBSD.mk -index bb3a5d0..b072030 100644 ---- a/config/FreeBSD.mk -+++ b/config/FreeBSD.mk -@@ -2,3 +2,8 @@ include $(XEN_ROOT)/config/StdGNU.mk - - # No wget on FreeBSD base system - WGET = ftp -+ -+XEN_LIB_STORED := ${localstatedir}/db/xenstored -+XEN_LOCK_DIR := ${localstatedir}/db -+XEN_PAGING_DIR := ${localstatedir}/db/xen/xenpaging -+XEN_DUMP_DIR := ${localstatedir}/crash/xen Property changes on: head/sysutils/xen-tools/files/var_paths.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Index: head/sysutils/xen-tools/files/0001-libs-xenstore-set-correct-FreeBSD-device.patch =================================================================== --- head/sysutils/xen-tools/files/0001-libs-xenstore-set-correct-FreeBSD-device.patch (revision 475253) +++ head/sysutils/xen-tools/files/0001-libs-xenstore-set-correct-FreeBSD-device.patch (nonexistent) @@ -1,32 +0,0 @@ -From 7ff99b232e0f91a5189f429498868bfccf8d7154 Mon Sep 17 00:00:00 2001 -From: Roger Pau Monne -Date: Mon, 12 Dec 2016 16:07:40 +0000 -Subject: [PATCH] libs/xenstore: set correct FreeBSD device -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The path to the xenstore FreeBSD device is /dev/xen/xenstore. - -Signed-off-by: Roger Pau Monné -Acked-by: Wei Liu ---- - tools/xenstore/xs_lib.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/tools/xenstore/xs_lib.c b/tools/xenstore/xs_lib.c -index 5ef3d6d..3e43f88 100644 ---- a/tools/xenstore/xs_lib.c -+++ b/tools/xenstore/xs_lib.c -@@ -85,6 +85,8 @@ const char *xs_domain_dev(void) - return "/proc/xen/xenbus"; - #elif defined(__NetBSD__) - return "/kern/xen/xenbus"; -+#elif defined(__FreeBSD__) -+ return "/dev/xen/xenstore"; - #else - return "/dev/xen/xenbus"; - #endif --- -2.10.1 (Apple Git-78) - Property changes on: head/sysutils/xen-tools/files/0001-libs-xenstore-set-correct-FreeBSD-device.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/sysutils/xen-tools/files/0001-libxl-fix-creation-of-pkgconf-install-dir.patch =================================================================== --- head/sysutils/xen-tools/files/0001-libxl-fix-creation-of-pkgconf-install-dir.patch (revision 475253) +++ head/sysutils/xen-tools/files/0001-libxl-fix-creation-of-pkgconf-install-dir.patch (nonexistent) @@ -1,35 +0,0 @@ -From 45434adc3c94f5229744beaa12028aa23f63b9e7 Mon Sep 17 00:00:00 2001 -From: Roger Pau Monne -Date: Wed, 23 Nov 2016 16:56:39 +0000 -Subject: [PATCH] libxl: fix creation of pkgconf install dir -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -When PKG_INSTALLDIR was introduced the creation of the previous pkgconf install -directory was not changed. Fix this by correctly using PKG_INSTALLDIR for the -directory creation in libxl Makefile. - -Signed-off-by: Roger Pau Monné -Acked-by: Wei Liu -Release-acked-by: Wei Liu ---- - tools/libxl/Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile -index f5053a0..ef01785 100644 ---- a/tools/libxl/Makefile -+++ b/tools/libxl/Makefile -@@ -308,7 +308,7 @@ install: all - $(INSTALL_DIR) $(DESTDIR)$(includedir) - $(INSTALL_DIR) $(DESTDIR)$(BASH_COMPLETION_DIR) - $(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN) -- $(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)/pkgconfig -+ $(INSTALL_DIR) $(DESTDIR)$(PKG_INSTALLDIR) - $(INSTALL_PROG) xl $(DESTDIR)$(sbindir) - $(INSTALL_PROG) libxl-save-helper $(DESTDIR)$(LIBEXEC_BIN) - $(INSTALL_SHLIB) libxenlight.so.$(MAJOR).$(MINOR) $(DESTDIR)$(libdir) --- -2.9.3 (Apple Git-75) - Property changes on: head/sysutils/xen-tools/files/0001-libxl-fix-creation-of-pkgconf-install-dir.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/sysutils/xen-tools/files/0001-tools-configure-fix-pkg-config-install-path-for-Free.patch =================================================================== --- head/sysutils/xen-tools/files/0001-tools-configure-fix-pkg-config-install-path-for-Free.patch (revision 475253) +++ head/sysutils/xen-tools/files/0001-tools-configure-fix-pkg-config-install-path-for-Free.patch (nonexistent) @@ -1,66 +0,0 @@ -From 4000a7c7d7b0e01837abd3918e393f289c07d68c Mon Sep 17 00:00:00 2001 -From: Roger Pau Monne -Date: Tue, 25 Oct 2016 11:53:28 +0200 -Subject: [PATCH] tools/configure: fix pkg-config install path for FreeBSD -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -pkg-config from FreeBSD ports doesn't have ${prefix}/share/pkgconfig in the -default search path, fix this by having a PKG_INSTALLDIR variable that can -be changed on a per-OS basis. - -It would be best to use PKG_INSTALLDIR as defined by the pkg.m4 macro, but -sadly this also reports a wrong value on FreeBSD (${libdir}/pkgconfig, which -expands to /usr/local/lib/pkgconfig by default, and is also _not_ part of -the default pkg-config search path). - -This patch should not change the behavior for Linux installs. - -Signed-off-by: Roger Pau Monné -Reported-by: Alexander Nusov -Acked-by: Wei Liu -Release-acked-by: Wei Liu ---- - config/FreeBSD.mk | 1 + - config/Paths.mk.in | 2 ++ - tools/libxl/Makefile | 4 ++-- - 3 files changed, 5 insertions(+), 2 deletions(-) - -diff --git a/config/FreeBSD.mk b/config/FreeBSD.mk -index bb3a5d0..afeaefb 100644 ---- a/config/FreeBSD.mk -+++ b/config/FreeBSD.mk -@@ -2,3 +2,4 @@ include $(XEN_ROOT)/config/StdGNU.mk - - # No wget on FreeBSD base system - WGET = ftp -+PKG_INSTALLDIR = ${prefix}/libdata/pkgconfig -diff --git a/config/Paths.mk.in b/config/Paths.mk.in -index 62cea48..a603295 100644 ---- a/config/Paths.mk.in -+++ b/config/Paths.mk.in -@@ -56,3 +56,5 @@ XENFIRMWAREDIR := @XENFIRMWAREDIR@ - - XEN_CONFIG_DIR := @XEN_CONFIG_DIR@ - XEN_SCRIPT_DIR := @XEN_SCRIPT_DIR@ -+ -+PKG_INSTALLDIR := ${SHAREDIR}/pkgconfig -diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile -index 79e4019..af0a3ad 100644 ---- a/tools/libxl/Makefile -+++ b/tools/libxl/Makefile -@@ -320,8 +320,8 @@ install: all - $(INSTALL_DATA) libxlutil.a $(DESTDIR)$(libdir) - $(INSTALL_DATA) libxl.h libxl_event.h libxl_json.h _libxl_types.h _libxl_types_json.h _libxl_list.h libxl_utils.h libxl_uuid.h libxlutil.h $(DESTDIR)$(includedir) - $(INSTALL_DATA) bash-completion $(DESTDIR)$(BASH_COMPLETION_DIR)/xl.sh -- $(INSTALL_DATA) xenlight.pc $(DESTDIR)$(SHAREDIR)/pkgconfig/ -- $(INSTALL_DATA) xlutil.pc $(DESTDIR)$(SHAREDIR)/pkgconfig/ -+ $(INSTALL_DATA) xenlight.pc $(DESTDIR)$(PKG_INSTALLDIR) -+ $(INSTALL_DATA) xlutil.pc $(DESTDIR)$(PKG_INSTALLDIR) - - .PHONY: clean - clean: --- -2.9.3 (Apple Git-75) - Property changes on: head/sysutils/xen-tools/files/0001-tools-configure-fix-pkg-config-install-path-for-Free.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/sysutils/xen-tools/files/xsa211-qemuu-4.7.patch =================================================================== --- head/sysutils/xen-tools/files/xsa211-qemuu-4.7.patch (revision 475253) +++ head/sysutils/xen-tools/files/xsa211-qemuu-4.7.patch (nonexistent) @@ -1,259 +0,0 @@ -From 9de536fbc2be97ae887560f08f0fd824efa3d5db Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Tue, 14 Feb 2017 19:09:59 +0100 -Subject: [PATCH] cirrus/vnc: zap bitblit support from console code. - -There is a special code path (dpy_gfx_copy) to allow graphic emulation -notify user interface code about bitblit operations carryed out by -guests. It is supported by cirrus and vnc server. The intended purpose -is to optimize display scrolls and just send over the scroll op instead -of a full display update. - -This is rarely used these days though because modern guests simply don't -use the cirrus blitter any more. Any linux guest using the cirrus drm -driver doesn't. Any windows guest newer than winxp doesn't ship with a -cirrus driver any more and thus uses the cirrus as simple framebuffer. - -So this code tends to bitrot and bugs can go unnoticed for a long time. -See for example commit "3e10c3e vnc: fix qemu crash because of SIGSEGV" -which fixes a bug lingering in the code for almost a year, added by -commit "c7628bf vnc: only alloc server surface with clients connected". - -Also the vnc server will throttle the frame rate in case it figures the -network can't keep up (send buffers are full). This doesn't work with -dpy_gfx_copy, for any copy operation sent to the vnc client we have to -send all outstanding updates beforehand, otherwise the vnc client might -run the client side blit on outdated data and thereby corrupt the -display. So this dpy_gfx_copy "optimization" might even make things -worse on slow network links. - -Lets kill it once for all. - -Signed-off-by: Gerd Hoffmann ---- - hw/display/cirrus_vga.c | 12 ++----- - include/ui/console.h | 7 ---- - ui/console.c | 28 --------------- - ui/vnc.c | 91 ------------------------------------------------- - 4 files changed, 3 insertions(+), 135 deletions(-) - -diff --git a/hw/display/cirrus_vga.c b/hw/display/cirrus_vga.c -index 5901250..2841676 100644 ---- a/hw/display/cirrus_vga.c -+++ b/hw/display/cirrus_vga.c -@@ -758,11 +758,6 @@ static void cirrus_do_copy(CirrusVGAState *s, int dst, int src, int w, int h) - } - } - -- /* we have to flush all pending changes so that the copy -- is generated at the appropriate moment in time */ -- if (notify) -- graphic_hw_update(s->vga.con); -- - (*s->cirrus_rop) (s, s->vga.vram_ptr + - (s->cirrus_blt_dstaddr & s->cirrus_addr_mask), - s->vga.vram_ptr + -@@ -771,10 +766,9 @@ static void cirrus_do_copy(CirrusVGAState *s, int dst, int src, int w, int h) - s->cirrus_blt_width, s->cirrus_blt_height); - - if (notify) { -- qemu_console_copy(s->vga.con, -- sx, sy, dx, dy, -- s->cirrus_blt_width / depth, -- s->cirrus_blt_height); -+ dpy_gfx_update(s->vga.con, dx, dy, -+ s->cirrus_blt_width / depth, -+ s->cirrus_blt_height); - } - - /* we don't have to notify the display that this portion has -diff --git a/include/ui/console.h b/include/ui/console.h -index 047a2b4..ed07065 100644 ---- a/include/ui/console.h -+++ b/include/ui/console.h -@@ -166,9 +166,6 @@ typedef struct DisplayChangeListenerOps { - int x, int y, int w, int h); - void (*dpy_gfx_switch)(DisplayChangeListener *dcl, - struct DisplaySurface *new_surface); -- void (*dpy_gfx_copy)(DisplayChangeListener *dcl, -- int src_x, int src_y, -- int dst_x, int dst_y, int w, int h); - bool (*dpy_gfx_check_format)(DisplayChangeListener *dcl, - pixman_format_code_t format); - -@@ -233,8 +230,6 @@ int dpy_set_ui_info(QemuConsole *con, QemuUIInfo *info); - void dpy_gfx_update(QemuConsole *con, int x, int y, int w, int h); - void dpy_gfx_replace_surface(QemuConsole *con, - DisplaySurface *surface); --void dpy_gfx_copy(QemuConsole *con, int src_x, int src_y, -- int dst_x, int dst_y, int w, int h); - void dpy_text_cursor(QemuConsole *con, int x, int y); - void dpy_text_update(QemuConsole *con, int x, int y, int w, int h); - void dpy_text_resize(QemuConsole *con, int w, int h); -@@ -329,8 +324,6 @@ void text_consoles_set_display(DisplayState *ds); - void console_select(unsigned int index); - void console_color_init(DisplayState *ds); - void qemu_console_resize(QemuConsole *con, int width, int height); --void qemu_console_copy(QemuConsole *con, int src_x, int src_y, -- int dst_x, int dst_y, int w, int h); - DisplaySurface *qemu_console_surface(QemuConsole *con); - - /* console-gl.c */ -diff --git a/ui/console.c b/ui/console.c -index 75fc492..72d91cb 100644 ---- a/ui/console.c -+++ b/ui/console.c -@@ -1495,27 +1495,6 @@ static void dpy_refresh(DisplayState *s) - } - } - --void dpy_gfx_copy(QemuConsole *con, int src_x, int src_y, -- int dst_x, int dst_y, int w, int h) --{ -- DisplayState *s = con->ds; -- DisplayChangeListener *dcl; -- -- if (!qemu_console_is_visible(con)) { -- return; -- } -- QLIST_FOREACH(dcl, &s->listeners, next) { -- if (con != (dcl->con ? dcl->con : active_console)) { -- continue; -- } -- if (dcl->ops->dpy_gfx_copy) { -- dcl->ops->dpy_gfx_copy(dcl, src_x, src_y, dst_x, dst_y, w, h); -- } else { /* TODO */ -- dcl->ops->dpy_gfx_update(dcl, dst_x, dst_y, w, h); -- } -- } --} -- - void dpy_text_cursor(QemuConsole *con, int x, int y) - { - DisplayState *s = con->ds; -@@ -1968,13 +1947,6 @@ void qemu_console_resize(QemuConsole *s, int width, int height) - dpy_gfx_replace_surface(s, surface); - } - --void qemu_console_copy(QemuConsole *con, int src_x, int src_y, -- int dst_x, int dst_y, int w, int h) --{ -- assert(con->console_type == GRAPHIC_CONSOLE); -- dpy_gfx_copy(con, src_x, src_y, dst_x, dst_y, w, h); --} -- - DisplaySurface *qemu_console_surface(QemuConsole *console) - { - return console->surface; -diff --git a/ui/vnc.c b/ui/vnc.c -index 52c6809..61ab611 100644 ---- a/ui/vnc.c -+++ b/ui/vnc.c -@@ -908,96 +908,6 @@ int vnc_send_framebuffer_update(VncState *vs, int x, int y, int w, int h) - return n; - } - --static void vnc_copy(VncState *vs, int src_x, int src_y, int dst_x, int dst_y, int w, int h) --{ -- /* send bitblit op to the vnc client */ -- vnc_lock_output(vs); -- vnc_write_u8(vs, VNC_MSG_SERVER_FRAMEBUFFER_UPDATE); -- vnc_write_u8(vs, 0); -- vnc_write_u16(vs, 1); /* number of rects */ -- vnc_framebuffer_update(vs, dst_x, dst_y, w, h, VNC_ENCODING_COPYRECT); -- vnc_write_u16(vs, src_x); -- vnc_write_u16(vs, src_y); -- vnc_unlock_output(vs); -- vnc_flush(vs); --} -- --static void vnc_dpy_copy(DisplayChangeListener *dcl, -- int src_x, int src_y, -- int dst_x, int dst_y, int w, int h) --{ -- VncDisplay *vd = container_of(dcl, VncDisplay, dcl); -- VncState *vs, *vn; -- uint8_t *src_row; -- uint8_t *dst_row; -- int i, x, y, pitch, inc, w_lim, s; -- int cmp_bytes; -- -- vnc_refresh_server_surface(vd); -- QTAILQ_FOREACH_SAFE(vs, &vd->clients, next, vn) { -- if (vnc_has_feature(vs, VNC_FEATURE_COPYRECT)) { -- vs->force_update = 1; -- vnc_update_client(vs, 1, true); -- /* vs might be free()ed here */ -- } -- } -- -- /* do bitblit op on the local surface too */ -- pitch = vnc_server_fb_stride(vd); -- src_row = vnc_server_fb_ptr(vd, src_x, src_y); -- dst_row = vnc_server_fb_ptr(vd, dst_x, dst_y); -- y = dst_y; -- inc = 1; -- if (dst_y > src_y) { -- /* copy backwards */ -- src_row += pitch * (h-1); -- dst_row += pitch * (h-1); -- pitch = -pitch; -- y = dst_y + h - 1; -- inc = -1; -- } -- w_lim = w - (VNC_DIRTY_PIXELS_PER_BIT - (dst_x % VNC_DIRTY_PIXELS_PER_BIT)); -- if (w_lim < 0) { -- w_lim = w; -- } else { -- w_lim = w - (w_lim % VNC_DIRTY_PIXELS_PER_BIT); -- } -- for (i = 0; i < h; i++) { -- for (x = 0; x <= w_lim; -- x += s, src_row += cmp_bytes, dst_row += cmp_bytes) { -- if (x == w_lim) { -- if ((s = w - w_lim) == 0) -- break; -- } else if (!x) { -- s = (VNC_DIRTY_PIXELS_PER_BIT - -- (dst_x % VNC_DIRTY_PIXELS_PER_BIT)); -- s = MIN(s, w_lim); -- } else { -- s = VNC_DIRTY_PIXELS_PER_BIT; -- } -- cmp_bytes = s * VNC_SERVER_FB_BYTES; -- if (memcmp(src_row, dst_row, cmp_bytes) == 0) -- continue; -- memmove(dst_row, src_row, cmp_bytes); -- QTAILQ_FOREACH(vs, &vd->clients, next) { -- if (!vnc_has_feature(vs, VNC_FEATURE_COPYRECT)) { -- set_bit(((x + dst_x) / VNC_DIRTY_PIXELS_PER_BIT), -- vs->dirty[y]); -- } -- } -- } -- src_row += pitch - w * VNC_SERVER_FB_BYTES; -- dst_row += pitch - w * VNC_SERVER_FB_BYTES; -- y += inc; -- } -- -- QTAILQ_FOREACH(vs, &vd->clients, next) { -- if (vnc_has_feature(vs, VNC_FEATURE_COPYRECT)) { -- vnc_copy(vs, src_x, src_y, dst_x, dst_y, w, h); -- } -- } --} -- - static void vnc_mouse_set(DisplayChangeListener *dcl, - int x, int y, int visible) - { -@@ -3131,7 +3041,6 @@ static void vnc_listen_websocket_read(void *opaque) - static const DisplayChangeListenerOps dcl_ops = { - .dpy_name = "vnc", - .dpy_refresh = vnc_refresh, -- .dpy_gfx_copy = vnc_dpy_copy, - .dpy_gfx_update = vnc_dpy_update, - .dpy_gfx_switch = vnc_dpy_switch, - .dpy_gfx_check_format = qemu_pixman_check_format, --- -2.1.4 - Property changes on: head/sysutils/xen-tools/files/xsa211-qemuu-4.7.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/sysutils/xen-tools/files/0001-Backport-of-commit-858dba.patch =================================================================== --- head/sysutils/xen-tools/files/0001-Backport-of-commit-858dba.patch (revision 475253) +++ head/sysutils/xen-tools/files/0001-Backport-of-commit-858dba.patch (nonexistent) @@ -1,35 +0,0 @@ -From 2ff6287610fa44eec9f30630d87166ad1fc0e452 Mon Sep 17 00:00:00 2001 -From: Roger Pau Monne -Date: Tue, 22 May 2018 17:47:37 +0200 -Subject: [PATCH] Backport of commit 858dba - -This is required in order to build Xen with newer iasl found in HEAD. ---- - tools/firmware/hvmloader/acpi/Makefile | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tools/firmware/hvmloader/acpi/Makefile b/tools/firmware/hvmloader/acpi/Makefile -index d3e882ac69..29f93e6a8c 100644 ---- a/tools/firmware/hvmloader/acpi/Makefile -+++ b/tools/firmware/hvmloader/acpi/Makefile -@@ -27,7 +27,7 @@ all: acpi.a - - ssdt_s3.h ssdt_s4.h ssdt_pm.h ssdt_tpm.h: %.h: %.asl iasl - iasl -vs -p $* -tc $< -- sed -e 's/AmlCode/$*/g' $*.hex >$@ -+ sed -e 's/AmlCode/$*/g' -e 's/_aml_code//g' $*.hex >$@ - rm -f $*.hex $*.aml - - mk_dsdt: mk_dsdt.c -@@ -44,7 +44,7 @@ dsdt_%cpu.asl: dsdt.asl mk_dsdt - - $(filter dsdt_%.c,$(C_SRC)): %.c: iasl %.asl - iasl -vs -p $* -tc $*.asl -- sed -e 's/AmlCode/$*/g' $*.hex >$@ -+ sed -e 's/AmlCode/$*/g' -e 's/_aml_code//g' $*.hex >$@ - echo "int $*_len=sizeof($*);" >>$@ - rm -f $*.aml $*.hex - --- -2.17.0 - Property changes on: head/sysutils/xen-tools/files/0001-Backport-of-commit-858dba.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/sysutils/xen-tools/files/iasl-qemuu.patch =================================================================== --- head/sysutils/xen-tools/files/iasl-qemuu.patch (revision 475253) +++ head/sysutils/xen-tools/files/iasl-qemuu.patch (nonexistent) @@ -1,26 +0,0 @@ -diff --git a/hw/i386/acpi-dsdt.dsl b/hw/i386/acpi-dsdt.dsl -index a2d84ecf8f..e86d3eb263 100644 ---- a/hw/i386/acpi-dsdt.dsl -+++ b/hw/i386/acpi-dsdt.dsl -@@ -62,8 +62,6 @@ DefinitionBlock ( - - Scope(\_SB.PCI0) { - -- External(ISA, DeviceObj) -- - Device(ISA) { - Name(_ADR, 0x00010000) - -diff --git a/hw/i386/q35-acpi-dsdt.dsl b/hw/i386/q35-acpi-dsdt.dsl -index 16eaca3fae..44fa4a9c0c 100644 ---- a/hw/i386/q35-acpi-dsdt.dsl -+++ b/hw/i386/q35-acpi-dsdt.dsl -@@ -55,8 +55,6 @@ DefinitionBlock ( - Name(_ADR, 0x00) - Name(_UID, 1) - -- External(ISA, DeviceObj) -- - // _OSC: based on sample of ACPI3.0b spec - Name(SUPP, 0) // PCI _OSC Support Field value - Name(CTRL, 0) // PCI _OSC Control Field value Property changes on: head/sysutils/xen-tools/files/iasl-qemuu.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/sysutils/xen-tools/files/kdd.patch =================================================================== --- head/sysutils/xen-tools/files/kdd.patch (revision 475253) +++ head/sysutils/xen-tools/files/kdd.patch (nonexistent) @@ -1,36 +0,0 @@ -Subject: [PATCH] tools/kdd: don't use a pointer to an unaligned field. - -The 'val' field in the packet is byte-aligned (because it is part of a -packed struct), but the pointer argument to kdd_rdmsr() has the normal -alignment constraints for a uint64_t *. Use a local variable to make sure -the passed pointer has the correct alignment. - -Reported-by: Roger Pau Monné -Signed-off-by: Tim Deegan ---- - tools/debugger/kdd/kdd.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/tools/debugger/kdd/kdd.c b/tools/debugger/kdd/kdd.c -index 70f007e..1bd5dd5 100644 ---- a/tools/debugger/kdd/kdd.c -+++ b/tools/debugger/kdd/kdd.c -@@ -710,11 +710,13 @@ static void kdd_handle_read_ctrl(kdd_state *s) - static void kdd_handle_read_msr(kdd_state *s) - { - uint32_t msr = s->rxp.cmd.msr.msr; -+ uint64_t val; - int ok; - KDD_LOG(s, "Read MSR 0x%"PRIx32"\n", msr); - -- ok = (kdd_rdmsr(s->guest, s->cpuid, msr, &s->txp.cmd.msr.val) == 0); -+ ok = (kdd_rdmsr(s->guest, s->cpuid, msr, &val) == 0); - s->txp.cmd.msr.msr = msr; -+ s->txp.cmd.msr.val = val; - s->txp.cmd.msr.status = (ok ? KDD_STATUS_SUCCESS : KDD_STATUS_FAILURE); - kdd_send_cmd(s, KDD_CMD_READ_MSR, 0); - } --- -2.7.4 - - Property changes on: head/sysutils/xen-tools/files/kdd.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/sysutils/xen-tools47/files/kdd.patch =================================================================== --- head/sysutils/xen-tools47/files/kdd.patch (nonexistent) +++ head/sysutils/xen-tools47/files/kdd.patch (revision 475254) @@ -0,0 +1,36 @@ +Subject: [PATCH] tools/kdd: don't use a pointer to an unaligned field. + +The 'val' field in the packet is byte-aligned (because it is part of a +packed struct), but the pointer argument to kdd_rdmsr() has the normal +alignment constraints for a uint64_t *. Use a local variable to make sure +the passed pointer has the correct alignment. + +Reported-by: Roger Pau Monné +Signed-off-by: Tim Deegan +--- + tools/debugger/kdd/kdd.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/tools/debugger/kdd/kdd.c b/tools/debugger/kdd/kdd.c +index 70f007e..1bd5dd5 100644 +--- a/tools/debugger/kdd/kdd.c ++++ b/tools/debugger/kdd/kdd.c +@@ -710,11 +710,13 @@ static void kdd_handle_read_ctrl(kdd_state *s) + static void kdd_handle_read_msr(kdd_state *s) + { + uint32_t msr = s->rxp.cmd.msr.msr; ++ uint64_t val; + int ok; + KDD_LOG(s, "Read MSR 0x%"PRIx32"\n", msr); + +- ok = (kdd_rdmsr(s->guest, s->cpuid, msr, &s->txp.cmd.msr.val) == 0); ++ ok = (kdd_rdmsr(s->guest, s->cpuid, msr, &val) == 0); + s->txp.cmd.msr.msr = msr; ++ s->txp.cmd.msr.val = val; + s->txp.cmd.msr.status = (ok ? KDD_STATUS_SUCCESS : KDD_STATUS_FAILURE); + kdd_send_cmd(s, KDD_CMD_READ_MSR, 0); + } +-- +2.7.4 + + Property changes on: head/sysutils/xen-tools47/files/kdd.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/sysutils/xen-tools47/files/0001-Backport-of-commit-858dba.patch =================================================================== --- head/sysutils/xen-tools47/files/0001-Backport-of-commit-858dba.patch (nonexistent) +++ head/sysutils/xen-tools47/files/0001-Backport-of-commit-858dba.patch (revision 475254) @@ -0,0 +1,35 @@ +From 2ff6287610fa44eec9f30630d87166ad1fc0e452 Mon Sep 17 00:00:00 2001 +From: Roger Pau Monne +Date: Tue, 22 May 2018 17:47:37 +0200 +Subject: [PATCH] Backport of commit 858dba + +This is required in order to build Xen with newer iasl found in HEAD. +--- + tools/firmware/hvmloader/acpi/Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tools/firmware/hvmloader/acpi/Makefile b/tools/firmware/hvmloader/acpi/Makefile +index d3e882ac69..29f93e6a8c 100644 +--- a/tools/firmware/hvmloader/acpi/Makefile ++++ b/tools/firmware/hvmloader/acpi/Makefile +@@ -27,7 +27,7 @@ all: acpi.a + + ssdt_s3.h ssdt_s4.h ssdt_pm.h ssdt_tpm.h: %.h: %.asl iasl + iasl -vs -p $* -tc $< +- sed -e 's/AmlCode/$*/g' $*.hex >$@ ++ sed -e 's/AmlCode/$*/g' -e 's/_aml_code//g' $*.hex >$@ + rm -f $*.hex $*.aml + + mk_dsdt: mk_dsdt.c +@@ -44,7 +44,7 @@ dsdt_%cpu.asl: dsdt.asl mk_dsdt + + $(filter dsdt_%.c,$(C_SRC)): %.c: iasl %.asl + iasl -vs -p $* -tc $*.asl +- sed -e 's/AmlCode/$*/g' $*.hex >$@ ++ sed -e 's/AmlCode/$*/g' -e 's/_aml_code//g' $*.hex >$@ + echo "int $*_len=sizeof($*);" >>$@ + rm -f $*.aml $*.hex + +-- +2.17.0 + Property changes on: head/sysutils/xen-tools47/files/0001-Backport-of-commit-858dba.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/sysutils/xen-tools47/files/iasl-qemuu.patch =================================================================== --- head/sysutils/xen-tools47/files/iasl-qemuu.patch (nonexistent) +++ head/sysutils/xen-tools47/files/iasl-qemuu.patch (revision 475254) @@ -0,0 +1,26 @@ +diff --git a/hw/i386/acpi-dsdt.dsl b/hw/i386/acpi-dsdt.dsl +index a2d84ecf8f..e86d3eb263 100644 +--- a/hw/i386/acpi-dsdt.dsl ++++ b/hw/i386/acpi-dsdt.dsl +@@ -62,8 +62,6 @@ DefinitionBlock ( + + Scope(\_SB.PCI0) { + +- External(ISA, DeviceObj) +- + Device(ISA) { + Name(_ADR, 0x00010000) + +diff --git a/hw/i386/q35-acpi-dsdt.dsl b/hw/i386/q35-acpi-dsdt.dsl +index 16eaca3fae..44fa4a9c0c 100644 +--- a/hw/i386/q35-acpi-dsdt.dsl ++++ b/hw/i386/q35-acpi-dsdt.dsl +@@ -55,8 +55,6 @@ DefinitionBlock ( + Name(_ADR, 0x00) + Name(_UID, 1) + +- External(ISA, DeviceObj) +- + // _OSC: based on sample of ACPI3.0b spec + Name(SUPP, 0) // PCI _OSC Support Field value + Name(CTRL, 0) // PCI _OSC Control Field value Property changes on: head/sysutils/xen-tools47/files/iasl-qemuu.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/sysutils/xen-tools47/files/0001-xenstored-apply-a-write-transaction-rate-limit.patch =================================================================== --- head/sysutils/xen-tools47/files/0001-xenstored-apply-a-write-transaction-rate-limit.patch (nonexistent) +++ head/sysutils/xen-tools47/files/0001-xenstored-apply-a-write-transaction-rate-limit.patch (revision 475254) @@ -0,0 +1,456 @@ +From bfe42a836450591bb41f4f6393c42dbb0d72abb9 Mon Sep 17 00:00:00 2001 +From: Ian Jackson +Date: Sat, 18 Mar 2017 16:12:26 +0000 +Subject: [PATCH 01/15] xenstored: apply a write transaction rate limit + +This avoids a rogue client being about to stall another client (eg the +toolstack) indefinitely. + +This is XSA-206. + +Signed-off-by: Ian Jackson + +Backported to 4.8 (not entirely trivial). + +Reported-by: Juergen Gross +Signed-off-by: George Dunlap +Acked-by: Ian Jackson +--- + tools/xenstore/Makefile | 3 +- + tools/xenstore/xenstored_core.c | 9 ++ + tools/xenstore/xenstored_core.h | 6 + + tools/xenstore/xenstored_domain.c | 215 +++++++++++++++++++++++++++++++++ + tools/xenstore/xenstored_domain.h | 25 ++++ + tools/xenstore/xenstored_transaction.c | 5 + + 6 files changed, 262 insertions(+), 1 deletion(-) + +diff --git a/tools/xenstore/Makefile b/tools/xenstore/Makefile +index d691b78..b458729 100644 +--- a/tools/xenstore/Makefile ++++ b/tools/xenstore/Makefile +@@ -31,6 +31,7 @@ XENSTORED_OBJS_$(CONFIG_FreeBSD) = xenstored_posix.o + XENSTORED_OBJS_$(CONFIG_MiniOS) = xenstored_minios.o + + XENSTORED_OBJS += $(XENSTORED_OBJS_y) ++LDLIBS_xenstored += -lrt + + ifneq ($(XENSTORE_STATIC_CLIENTS),y) + LIBXENSTORE := libxenstore.so +@@ -72,7 +73,7 @@ endif + $(XENSTORED_OBJS): CFLAGS += $(CFLAGS_libxengnttab) + + xenstored: $(XENSTORED_OBJS) +- $(CC) $^ $(LDFLAGS) $(LDLIBS_libxenevtchn) $(LDLIBS_libxengnttab) $(LDLIBS_libxenctrl) $(SOCKET_LIBS) -o $@ $(APPEND_LDFLAGS) ++ $(CC) $^ $(LDFLAGS) $(LDLIBS_libxenevtchn) $(LDLIBS_libxengnttab) $(LDLIBS_libxenctrl) $(LDLIBS_xenstored) $(SOCKET_LIBS) -o $@ $(APPEND_LDFLAGS) + + xenstored.a: $(XENSTORED_OBJS) + $(AR) cr $@ $^ +diff --git a/tools/xenstore/xenstored_core.c b/tools/xenstore/xenstored_core.c +index 51fb0b3..1aabc93 100644 +--- a/tools/xenstore/xenstored_core.c ++++ b/tools/xenstore/xenstored_core.c +@@ -357,6 +357,7 @@ static void initialize_fds(int sock, int *p_sock_pollfd_idx, + int *ptimeout) + { + struct connection *conn; ++ struct wrl_timestampt now; + + if (fds) + memset(fds, 0, sizeof(struct pollfd) * current_array_size); +@@ -376,8 +377,11 @@ static void initialize_fds(int sock, int *p_sock_pollfd_idx, + xce_pollfd_idx = set_fd(xenevtchn_fd(xce_handle), + POLLIN|POLLPRI); + ++ wrl_gettime_now(&now); ++ + list_for_each_entry(conn, &connections, list) { + if (conn->domain) { ++ wrl_check_timeout(conn->domain, now, ptimeout); + if (domain_can_read(conn) || + (domain_can_write(conn) && + !list_empty(&conn->out_list))) +@@ -810,6 +814,7 @@ static void delete_node_single(struct connection *conn, struct node *node) + corrupt(conn, "Could not delete '%s'", node->name); + return; + } ++ + domain_entry_dec(conn, node); + } + +@@ -949,6 +954,7 @@ static void do_write(struct connection *conn, struct buffered_data *in) + } + + add_change_node(conn->transaction, name, false); ++ wrl_apply_debit_direct(conn); + fire_watches(conn, name, false); + send_ack(conn, XS_WRITE); + } +@@ -973,6 +979,7 @@ static void do_mkdir(struct connection *conn, const char *name) + return; + } + add_change_node(conn->transaction, name, false); ++ wrl_apply_debit_direct(conn); + fire_watches(conn, name, false); + } + send_ack(conn, XS_MKDIR); +@@ -1098,6 +1105,7 @@ static void do_rm(struct connection *conn, const char *name) + + if (_rm(conn, node, name)) { + add_change_node(conn->transaction, name, true); ++ wrl_apply_debit_direct(conn); + fire_watches(conn, name, true); + send_ack(conn, XS_RM); + } +@@ -1173,6 +1181,7 @@ static void do_set_perms(struct connection *conn, struct buffered_data *in) + } + + add_change_node(conn->transaction, name, false); ++ wrl_apply_debit_direct(conn); + fire_watches(conn, name, false); + send_ack(conn, XS_SET_PERMS); + } +diff --git a/tools/xenstore/xenstored_core.h b/tools/xenstore/xenstored_core.h +index 3a497f7..a2a3427 100644 +--- a/tools/xenstore/xenstored_core.h ++++ b/tools/xenstore/xenstored_core.h +@@ -33,6 +33,12 @@ + #include "list.h" + #include "tdb.h" + ++#define MIN(a, b) (((a) < (b))? (a) : (b)) ++ ++typedef int32_t wrl_creditt; ++#define WRL_CREDIT_MAX (1000*1000*1000) ++/* ^ satisfies non-overflow condition for wrl_xfer_credit */ ++ + struct buffered_data + { + struct list_head list; +diff --git a/tools/xenstore/xenstored_domain.c b/tools/xenstore/xenstored_domain.c +index 47b4f03..486c96f 100644 +--- a/tools/xenstore/xenstored_domain.c ++++ b/tools/xenstore/xenstored_domain.c +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + + #include "utils.h" + #include "talloc.h" +@@ -74,6 +75,10 @@ struct domain + + /* number of watch for this domain */ + int nbwatch; ++ ++ /* write rate limit */ ++ wrl_creditt wrl_credit; /* [ -wrl_config_writecost, +_dburst ] */ ++ struct wrl_timestampt wrl_timestamp; + }; + + static LIST_HEAD(domains); +@@ -206,6 +211,8 @@ static int destroy_domain(void *_domain) + + fire_watches(NULL, "@releaseDomain", false); + ++ wrl_domain_destroy(domain); ++ + return 0; + } + +@@ -253,6 +260,9 @@ void handle_event(void) + bool domain_can_read(struct connection *conn) + { + struct xenstore_domain_interface *intf = conn->domain->interface; ++ ++ if (domain_is_unprivileged(conn) && conn->domain->wrl_credit < 0) ++ return false; + return (intf->req_cons != intf->req_prod); + } + +@@ -284,6 +294,8 @@ static struct domain *new_domain(void *context, unsigned int domid, + domain->domid = domid; + domain->path = talloc_domain_path(domain, domid); + ++ wrl_domain_new(domain); ++ + list_add(&domain->list, &domains); + talloc_set_destructor(domain, destroy_domain); + +@@ -747,6 +759,209 @@ int domain_watch(struct connection *conn) + : 0; + } + ++static wrl_creditt wrl_config_writecost = WRL_FACTOR; ++static wrl_creditt wrl_config_rate = WRL_RATE * WRL_FACTOR; ++static wrl_creditt wrl_config_dburst = WRL_DBURST * WRL_FACTOR; ++static wrl_creditt wrl_config_gburst = WRL_GBURST * WRL_FACTOR; ++static wrl_creditt wrl_config_newdoms_dburst = ++ WRL_DBURST * WRL_NEWDOMS * WRL_FACTOR; ++ ++long wrl_ntransactions; ++ ++static long wrl_ndomains; ++static wrl_creditt wrl_reserve; /* [-wrl_config_newdoms_dburst, +_gburst ] */ ++ ++void wrl_gettime_now(struct wrl_timestampt *now_wt) ++{ ++ struct timespec now_ts; ++ int r; ++ ++ r = clock_gettime(CLOCK_MONOTONIC, &now_ts); ++ if (r) ++ barf_perror("Could not find time (clock_gettime failed)"); ++ ++ now_wt->sec = now_ts.tv_sec; ++ now_wt->msec = now_ts.tv_nsec / 1000000; ++} ++ ++static void wrl_xfer_credit(wrl_creditt *debit, wrl_creditt debit_floor, ++ wrl_creditt *credit, wrl_creditt credit_ceil) ++ /* ++ * Transfers zero or more credit from "debit" to "credit". ++ * Transfers as much as possible while maintaining ++ * debit >= debit_floor and credit <= credit_ceil. ++ * (If that's violated already, does nothing.) ++ * ++ * Sufficient conditions to avoid overflow, either of: ++ * |every argument| <= 0x3fffffff ++ * |every argument| <= 1E9 ++ * |every argument| <= WRL_CREDIT_MAX ++ * (And this condition is preserved.) ++ */ ++{ ++ wrl_creditt xfer = MIN( *debit - debit_floor, ++ credit_ceil - *credit ); ++ if (xfer > 0) { ++ *debit -= xfer; ++ *credit += xfer; ++ } ++} ++ ++void wrl_domain_new(struct domain *domain) ++{ ++ domain->wrl_credit = 0; ++ wrl_gettime_now(&domain->wrl_timestamp); ++ wrl_ndomains++; ++ /* Steal up to DBURST from the reserve */ ++ wrl_xfer_credit(&wrl_reserve, -wrl_config_newdoms_dburst, ++ &domain->wrl_credit, wrl_config_dburst); ++} ++ ++void wrl_domain_destroy(struct domain *domain) ++{ ++ wrl_ndomains--; ++ /* ++ * Don't bother recalculating domain's credit - this just ++ * means we don't give the reserve the ending domain's credit ++ * for time elapsed since last update. ++ */ ++ wrl_xfer_credit(&domain->wrl_credit, 0, ++ &wrl_reserve, wrl_config_dburst); ++} ++ ++void wrl_credit_update(struct domain *domain, struct wrl_timestampt now) ++{ ++ /* ++ * We want to calculate ++ * credit += (now - timestamp) * RATE / ndoms; ++ * But we want it to saturate, and to avoid floating point. ++ * To avoid rounding errors from constantly adding small ++ * amounts of credit, we only add credit for whole milliseconds. ++ */ ++ long seconds = now.sec - domain->wrl_timestamp.sec; ++ long milliseconds = now.msec - domain->wrl_timestamp.msec; ++ long msec; ++ int64_t denom, num; ++ wrl_creditt surplus; ++ ++ seconds = MIN(seconds, 1000*1000); /* arbitrary, prevents overflow */ ++ msec = seconds * 1000 + milliseconds; ++ ++ if (msec < 0) ++ /* shouldn't happen with CLOCK_MONOTONIC */ ++ msec = 0; ++ ++ /* 32x32 -> 64 cannot overflow */ ++ denom = (int64_t)msec * wrl_config_rate; ++ num = (int64_t)wrl_ndomains * 1000; ++ /* denom / num <= 1E6 * wrl_config_rate, so with ++ reasonable wrl_config_rate, denom / num << 2^64 */ ++ ++ /* at last! */ ++ domain->wrl_credit = MIN( (int64_t)domain->wrl_credit + denom / num, ++ WRL_CREDIT_MAX ); ++ /* (maybe briefly violating the DBURST cap on wrl_credit) */ ++ ++ /* maybe take from the reserve to make us nonnegative */ ++ wrl_xfer_credit(&wrl_reserve, 0, ++ &domain->wrl_credit, 0); ++ ++ /* return any surplus (over DBURST) to the reserve */ ++ surplus = 0; ++ wrl_xfer_credit(&domain->wrl_credit, wrl_config_dburst, ++ &surplus, WRL_CREDIT_MAX); ++ wrl_xfer_credit(&surplus, 0, ++ &wrl_reserve, wrl_config_gburst); ++ /* surplus is now implicitly discarded */ ++ ++ domain->wrl_timestamp = now; ++ ++ trace("wrl: dom %4d %6ld msec %9ld credit %9ld reserve" ++ " %9ld discard\n", ++ domain->domid, ++ msec, ++ (long)domain->wrl_credit, (long)wrl_reserve, ++ (long)surplus); ++} ++ ++void wrl_check_timeout(struct domain *domain, ++ struct wrl_timestampt now, ++ int *ptimeout) ++{ ++ uint64_t num, denom; ++ int wakeup; ++ ++ wrl_credit_update(domain, now); ++ ++ if (domain->wrl_credit >= 0) ++ /* not blocked */ ++ return; ++ ++ if (!*ptimeout) ++ /* already decided on immediate wakeup, ++ so no need to calculate our timeout */ ++ return; ++ ++ /* calculate wakeup = now + -credit / (RATE / ndoms); */ ++ ++ /* credit cannot go more -ve than one transaction, ++ * so the first multiplication cannot overflow even 32-bit */ ++ num = (uint64_t)(-domain->wrl_credit * 1000) * wrl_ndomains; ++ denom = wrl_config_rate; ++ ++ wakeup = MIN( num / denom /* uint64_t */, INT_MAX ); ++ if (*ptimeout==-1 || wakeup < *ptimeout) ++ *ptimeout = wakeup; ++ ++ trace("wrl: domain %u credit=%ld (reserve=%ld) SLEEPING for %d\n", ++ domain->domid, ++ (long)domain->wrl_credit, (long)wrl_reserve, ++ wakeup); ++} ++ ++void wrl_apply_debit_actual(struct domain *domain) ++{ ++ struct wrl_timestampt now; ++ ++ if (!domain) ++ /* sockets escape the write rate limit */ ++ return; ++ ++ wrl_gettime_now(&now); ++ wrl_credit_update(domain, now); ++ ++ domain->wrl_credit -= wrl_config_writecost; ++ trace("wrl: domain %u credit=%ld (reserve=%ld)\n", ++ domain->domid, ++ (long)domain->wrl_credit, (long)wrl_reserve); ++} ++ ++void wrl_apply_debit_direct(struct connection *conn) ++{ ++ if (!conn) ++ /* some writes are generated internally */ ++ return; ++ ++ if (conn->transaction) ++ /* these are accounted for when the transaction ends */ ++ return; ++ ++ if (!wrl_ntransactions) ++ /* we don't conflict with anyone */ ++ return; ++ ++ wrl_apply_debit_actual(conn->domain); ++} ++ ++void wrl_apply_debit_trans_commit(struct connection *conn) ++{ ++ if (wrl_ntransactions <= 1) ++ /* our own transaction appears in the counter */ ++ return; ++ ++ wrl_apply_debit_actual(conn->domain); ++} ++ + /* + * Local variables: + * c-file-style: "linux" +diff --git a/tools/xenstore/xenstored_domain.h b/tools/xenstore/xenstored_domain.h +index 83488ed..bdc4044 100644 +--- a/tools/xenstore/xenstored_domain.h ++++ b/tools/xenstore/xenstored_domain.h +@@ -65,4 +65,29 @@ void domain_watch_inc(struct connection *conn); + void domain_watch_dec(struct connection *conn); + int domain_watch(struct connection *conn); + ++/* Write rate limiting */ ++ ++#define WRL_FACTOR 1000 /* for fixed-point arithmetic */ ++#define WRL_RATE 200 ++#define WRL_DBURST 10 ++#define WRL_GBURST 1000 ++#define WRL_NEWDOMS 5 ++ ++struct wrl_timestampt { ++ time_t sec; ++ int msec; ++}; ++ ++extern long wrl_ntransactions; ++ ++void wrl_gettime_now(struct wrl_timestampt *now_ts); ++void wrl_domain_new(struct domain *domain); ++void wrl_domain_destroy(struct domain *domain); ++void wrl_credit_update(struct domain *domain, struct wrl_timestampt now); ++void wrl_check_timeout(struct domain *domain, ++ struct wrl_timestampt now, ++ int *ptimeout); ++void wrl_apply_debit_direct(struct connection *conn); ++void wrl_apply_debit_trans_commit(struct connection *conn); ++ + #endif /* _XENSTORED_DOMAIN_H */ +diff --git a/tools/xenstore/xenstored_transaction.c b/tools/xenstore/xenstored_transaction.c +index d0e4739..a4b328f 100644 +--- a/tools/xenstore/xenstored_transaction.c ++++ b/tools/xenstore/xenstored_transaction.c +@@ -116,6 +116,7 @@ static int destroy_transaction(void *_transaction) + { + struct transaction *trans = _transaction; + ++ wrl_ntransactions--; + trace_destroy(trans, "transaction"); + if (trans->tdb) + tdb_close(trans->tdb); +@@ -179,6 +180,7 @@ void do_transaction_start(struct connection *conn, struct buffered_data *in) + talloc_steal(conn, trans); + talloc_set_destructor(trans, destroy_transaction); + conn->transaction_started++; ++ wrl_ntransactions++; + + snprintf(id_str, sizeof(id_str), "%u", trans->id); + send_reply(conn, XS_TRANSACTION_START, id_str, strlen(id_str)+1); +@@ -213,6 +215,9 @@ void do_transaction_end(struct connection *conn, const char *arg) + send_error(conn, EAGAIN); + return; + } ++ ++ wrl_apply_debit_trans_commit(conn); ++ + if (!replace_tdb(trans->tdb_name, trans->tdb)) { + send_error(conn, errno); + return; +-- +2.1.4 + Property changes on: head/sysutils/xen-tools47/files/0001-xenstored-apply-a-write-transaction-rate-limit.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/sysutils/xen-tools47/files/0002-xenstored-Log-when-the-write-transaction-rate-limit-.patch =================================================================== --- head/sysutils/xen-tools47/files/0002-xenstored-Log-when-the-write-transaction-rate-limit-.patch (nonexistent) +++ head/sysutils/xen-tools47/files/0002-xenstored-Log-when-the-write-transaction-rate-limit-.patch (revision 475254) @@ -0,0 +1,113 @@ +From 1d713bf29548ee3e48c3170bafe2863d17694e90 Mon Sep 17 00:00:00 2001 +From: Ian Jackson +Date: Sat, 18 Mar 2017 16:39:31 +0000 +Subject: [PATCH 02/15] xenstored: Log when the write transaction rate limit + bites + +Reported-by: Juergen Gross +Signed-off-by: Ian Jackson +--- + tools/xenstore/xenstored_core.c | 1 + + tools/xenstore/xenstored_domain.c | 25 +++++++++++++++++++++++++ + tools/xenstore/xenstored_domain.h | 2 ++ + 3 files changed, 28 insertions(+) + +diff --git a/tools/xenstore/xenstored_core.c b/tools/xenstore/xenstored_core.c +index 1aabc93..907b44f 100644 +--- a/tools/xenstore/xenstored_core.c ++++ b/tools/xenstore/xenstored_core.c +@@ -378,6 +378,7 @@ static void initialize_fds(int sock, int *p_sock_pollfd_idx, + POLLIN|POLLPRI); + + wrl_gettime_now(&now); ++ wrl_log_periodic(now); + + list_for_each_entry(conn, &connections, list) { + if (conn->domain) { +diff --git a/tools/xenstore/xenstored_domain.c b/tools/xenstore/xenstored_domain.c +index 486c96f..75cfad1 100644 +--- a/tools/xenstore/xenstored_domain.c ++++ b/tools/xenstore/xenstored_domain.c +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + + #include "utils.h" + #include "talloc.h" +@@ -79,6 +80,7 @@ struct domain + /* write rate limit */ + wrl_creditt wrl_credit; /* [ -wrl_config_writecost, +_dburst ] */ + struct wrl_timestampt wrl_timestamp; ++ bool wrl_delay_logged; + }; + + static LIST_HEAD(domains); +@@ -770,6 +772,7 @@ long wrl_ntransactions; + + static long wrl_ndomains; + static wrl_creditt wrl_reserve; /* [-wrl_config_newdoms_dburst, +_gburst ] */ ++static time_t wrl_log_last_warning; /* 0: no previous warning */ + + void wrl_gettime_now(struct wrl_timestampt *now_wt) + { +@@ -919,6 +922,9 @@ void wrl_check_timeout(struct domain *domain, + wakeup); + } + ++#define WRL_LOG(now, ...) \ ++ (syslog(LOG_WARNING, "write rate limit: " __VA_ARGS__)) ++ + void wrl_apply_debit_actual(struct domain *domain) + { + struct wrl_timestampt now; +@@ -934,6 +940,25 @@ void wrl_apply_debit_actual(struct domain *domain) + trace("wrl: domain %u credit=%ld (reserve=%ld)\n", + domain->domid, + (long)domain->wrl_credit, (long)wrl_reserve); ++ ++ if (domain->wrl_credit < 0) { ++ if (!domain->wrl_delay_logged++) { ++ WRL_LOG(now, "domain %ld is affected", ++ (long)domain->domid); ++ } else if (!wrl_log_last_warning) { ++ WRL_LOG(now, "rate limiting restarts"); ++ } ++ wrl_log_last_warning = now.sec; ++ } ++} ++ ++void wrl_log_periodic(struct wrl_timestampt now) ++{ ++ if (wrl_log_last_warning && ++ (now.sec - wrl_log_last_warning) > WRL_LOGEVERY) { ++ WRL_LOG(now, "not in force recently"); ++ wrl_log_last_warning = 0; ++ } + } + + void wrl_apply_debit_direct(struct connection *conn) +diff --git a/tools/xenstore/xenstored_domain.h b/tools/xenstore/xenstored_domain.h +index bdc4044..2b963ed 100644 +--- a/tools/xenstore/xenstored_domain.h ++++ b/tools/xenstore/xenstored_domain.h +@@ -72,6 +72,7 @@ int domain_watch(struct connection *conn); + #define WRL_DBURST 10 + #define WRL_GBURST 1000 + #define WRL_NEWDOMS 5 ++#define WRL_LOGEVERY 120 /* seconds */ + + struct wrl_timestampt { + time_t sec; +@@ -87,6 +88,7 @@ void wrl_credit_update(struct domain *domain, struct wrl_timestampt now); + void wrl_check_timeout(struct domain *domain, + struct wrl_timestampt now, + int *ptimeout); ++void wrl_log_periodic(struct wrl_timestampt now); + void wrl_apply_debit_direct(struct connection *conn); + void wrl_apply_debit_trans_commit(struct connection *conn); + +-- +2.1.4 + Property changes on: head/sysutils/xen-tools47/files/0002-xenstored-Log-when-the-write-transaction-rate-limit-.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/sysutils/xen-tools47/files/xsa211-qemuu-4.7.patch =================================================================== --- head/sysutils/xen-tools47/files/xsa211-qemuu-4.7.patch (nonexistent) +++ head/sysutils/xen-tools47/files/xsa211-qemuu-4.7.patch (revision 475254) @@ -0,0 +1,259 @@ +From 9de536fbc2be97ae887560f08f0fd824efa3d5db Mon Sep 17 00:00:00 2001 +From: Gerd Hoffmann +Date: Tue, 14 Feb 2017 19:09:59 +0100 +Subject: [PATCH] cirrus/vnc: zap bitblit support from console code. + +There is a special code path (dpy_gfx_copy) to allow graphic emulation +notify user interface code about bitblit operations carryed out by +guests. It is supported by cirrus and vnc server. The intended purpose +is to optimize display scrolls and just send over the scroll op instead +of a full display update. + +This is rarely used these days though because modern guests simply don't +use the cirrus blitter any more. Any linux guest using the cirrus drm +driver doesn't. Any windows guest newer than winxp doesn't ship with a +cirrus driver any more and thus uses the cirrus as simple framebuffer. + +So this code tends to bitrot and bugs can go unnoticed for a long time. +See for example commit "3e10c3e vnc: fix qemu crash because of SIGSEGV" +which fixes a bug lingering in the code for almost a year, added by +commit "c7628bf vnc: only alloc server surface with clients connected". + +Also the vnc server will throttle the frame rate in case it figures the +network can't keep up (send buffers are full). This doesn't work with +dpy_gfx_copy, for any copy operation sent to the vnc client we have to +send all outstanding updates beforehand, otherwise the vnc client might +run the client side blit on outdated data and thereby corrupt the +display. So this dpy_gfx_copy "optimization" might even make things +worse on slow network links. + +Lets kill it once for all. + +Signed-off-by: Gerd Hoffmann +--- + hw/display/cirrus_vga.c | 12 ++----- + include/ui/console.h | 7 ---- + ui/console.c | 28 --------------- + ui/vnc.c | 91 ------------------------------------------------- + 4 files changed, 3 insertions(+), 135 deletions(-) + +diff --git a/hw/display/cirrus_vga.c b/hw/display/cirrus_vga.c +index 5901250..2841676 100644 +--- a/hw/display/cirrus_vga.c ++++ b/hw/display/cirrus_vga.c +@@ -758,11 +758,6 @@ static void cirrus_do_copy(CirrusVGAState *s, int dst, int src, int w, int h) + } + } + +- /* we have to flush all pending changes so that the copy +- is generated at the appropriate moment in time */ +- if (notify) +- graphic_hw_update(s->vga.con); +- + (*s->cirrus_rop) (s, s->vga.vram_ptr + + (s->cirrus_blt_dstaddr & s->cirrus_addr_mask), + s->vga.vram_ptr + +@@ -771,10 +766,9 @@ static void cirrus_do_copy(CirrusVGAState *s, int dst, int src, int w, int h) + s->cirrus_blt_width, s->cirrus_blt_height); + + if (notify) { +- qemu_console_copy(s->vga.con, +- sx, sy, dx, dy, +- s->cirrus_blt_width / depth, +- s->cirrus_blt_height); ++ dpy_gfx_update(s->vga.con, dx, dy, ++ s->cirrus_blt_width / depth, ++ s->cirrus_blt_height); + } + + /* we don't have to notify the display that this portion has +diff --git a/include/ui/console.h b/include/ui/console.h +index 047a2b4..ed07065 100644 +--- a/include/ui/console.h ++++ b/include/ui/console.h +@@ -166,9 +166,6 @@ typedef struct DisplayChangeListenerOps { + int x, int y, int w, int h); + void (*dpy_gfx_switch)(DisplayChangeListener *dcl, + struct DisplaySurface *new_surface); +- void (*dpy_gfx_copy)(DisplayChangeListener *dcl, +- int src_x, int src_y, +- int dst_x, int dst_y, int w, int h); + bool (*dpy_gfx_check_format)(DisplayChangeListener *dcl, + pixman_format_code_t format); + +@@ -233,8 +230,6 @@ int dpy_set_ui_info(QemuConsole *con, QemuUIInfo *info); + void dpy_gfx_update(QemuConsole *con, int x, int y, int w, int h); + void dpy_gfx_replace_surface(QemuConsole *con, + DisplaySurface *surface); +-void dpy_gfx_copy(QemuConsole *con, int src_x, int src_y, +- int dst_x, int dst_y, int w, int h); + void dpy_text_cursor(QemuConsole *con, int x, int y); + void dpy_text_update(QemuConsole *con, int x, int y, int w, int h); + void dpy_text_resize(QemuConsole *con, int w, int h); +@@ -329,8 +324,6 @@ void text_consoles_set_display(DisplayState *ds); + void console_select(unsigned int index); + void console_color_init(DisplayState *ds); + void qemu_console_resize(QemuConsole *con, int width, int height); +-void qemu_console_copy(QemuConsole *con, int src_x, int src_y, +- int dst_x, int dst_y, int w, int h); + DisplaySurface *qemu_console_surface(QemuConsole *con); + + /* console-gl.c */ +diff --git a/ui/console.c b/ui/console.c +index 75fc492..72d91cb 100644 +--- a/ui/console.c ++++ b/ui/console.c +@@ -1495,27 +1495,6 @@ static void dpy_refresh(DisplayState *s) + } + } + +-void dpy_gfx_copy(QemuConsole *con, int src_x, int src_y, +- int dst_x, int dst_y, int w, int h) +-{ +- DisplayState *s = con->ds; +- DisplayChangeListener *dcl; +- +- if (!qemu_console_is_visible(con)) { +- return; +- } +- QLIST_FOREACH(dcl, &s->listeners, next) { +- if (con != (dcl->con ? dcl->con : active_console)) { +- continue; +- } +- if (dcl->ops->dpy_gfx_copy) { +- dcl->ops->dpy_gfx_copy(dcl, src_x, src_y, dst_x, dst_y, w, h); +- } else { /* TODO */ +- dcl->ops->dpy_gfx_update(dcl, dst_x, dst_y, w, h); +- } +- } +-} +- + void dpy_text_cursor(QemuConsole *con, int x, int y) + { + DisplayState *s = con->ds; +@@ -1968,13 +1947,6 @@ void qemu_console_resize(QemuConsole *s, int width, int height) + dpy_gfx_replace_surface(s, surface); + } + +-void qemu_console_copy(QemuConsole *con, int src_x, int src_y, +- int dst_x, int dst_y, int w, int h) +-{ +- assert(con->console_type == GRAPHIC_CONSOLE); +- dpy_gfx_copy(con, src_x, src_y, dst_x, dst_y, w, h); +-} +- + DisplaySurface *qemu_console_surface(QemuConsole *console) + { + return console->surface; +diff --git a/ui/vnc.c b/ui/vnc.c +index 52c6809..61ab611 100644 +--- a/ui/vnc.c ++++ b/ui/vnc.c +@@ -908,96 +908,6 @@ int vnc_send_framebuffer_update(VncState *vs, int x, int y, int w, int h) + return n; + } + +-static void vnc_copy(VncState *vs, int src_x, int src_y, int dst_x, int dst_y, int w, int h) +-{ +- /* send bitblit op to the vnc client */ +- vnc_lock_output(vs); +- vnc_write_u8(vs, VNC_MSG_SERVER_FRAMEBUFFER_UPDATE); +- vnc_write_u8(vs, 0); +- vnc_write_u16(vs, 1); /* number of rects */ +- vnc_framebuffer_update(vs, dst_x, dst_y, w, h, VNC_ENCODING_COPYRECT); +- vnc_write_u16(vs, src_x); +- vnc_write_u16(vs, src_y); +- vnc_unlock_output(vs); +- vnc_flush(vs); +-} +- +-static void vnc_dpy_copy(DisplayChangeListener *dcl, +- int src_x, int src_y, +- int dst_x, int dst_y, int w, int h) +-{ +- VncDisplay *vd = container_of(dcl, VncDisplay, dcl); +- VncState *vs, *vn; +- uint8_t *src_row; +- uint8_t *dst_row; +- int i, x, y, pitch, inc, w_lim, s; +- int cmp_bytes; +- +- vnc_refresh_server_surface(vd); +- QTAILQ_FOREACH_SAFE(vs, &vd->clients, next, vn) { +- if (vnc_has_feature(vs, VNC_FEATURE_COPYRECT)) { +- vs->force_update = 1; +- vnc_update_client(vs, 1, true); +- /* vs might be free()ed here */ +- } +- } +- +- /* do bitblit op on the local surface too */ +- pitch = vnc_server_fb_stride(vd); +- src_row = vnc_server_fb_ptr(vd, src_x, src_y); +- dst_row = vnc_server_fb_ptr(vd, dst_x, dst_y); +- y = dst_y; +- inc = 1; +- if (dst_y > src_y) { +- /* copy backwards */ +- src_row += pitch * (h-1); +- dst_row += pitch * (h-1); +- pitch = -pitch; +- y = dst_y + h - 1; +- inc = -1; +- } +- w_lim = w - (VNC_DIRTY_PIXELS_PER_BIT - (dst_x % VNC_DIRTY_PIXELS_PER_BIT)); +- if (w_lim < 0) { +- w_lim = w; +- } else { +- w_lim = w - (w_lim % VNC_DIRTY_PIXELS_PER_BIT); +- } +- for (i = 0; i < h; i++) { +- for (x = 0; x <= w_lim; +- x += s, src_row += cmp_bytes, dst_row += cmp_bytes) { +- if (x == w_lim) { +- if ((s = w - w_lim) == 0) +- break; +- } else if (!x) { +- s = (VNC_DIRTY_PIXELS_PER_BIT - +- (dst_x % VNC_DIRTY_PIXELS_PER_BIT)); +- s = MIN(s, w_lim); +- } else { +- s = VNC_DIRTY_PIXELS_PER_BIT; +- } +- cmp_bytes = s * VNC_SERVER_FB_BYTES; +- if (memcmp(src_row, dst_row, cmp_bytes) == 0) +- continue; +- memmove(dst_row, src_row, cmp_bytes); +- QTAILQ_FOREACH(vs, &vd->clients, next) { +- if (!vnc_has_feature(vs, VNC_FEATURE_COPYRECT)) { +- set_bit(((x + dst_x) / VNC_DIRTY_PIXELS_PER_BIT), +- vs->dirty[y]); +- } +- } +- } +- src_row += pitch - w * VNC_SERVER_FB_BYTES; +- dst_row += pitch - w * VNC_SERVER_FB_BYTES; +- y += inc; +- } +- +- QTAILQ_FOREACH(vs, &vd->clients, next) { +- if (vnc_has_feature(vs, VNC_FEATURE_COPYRECT)) { +- vnc_copy(vs, src_x, src_y, dst_x, dst_y, w, h); +- } +- } +-} +- + static void vnc_mouse_set(DisplayChangeListener *dcl, + int x, int y, int visible) + { +@@ -3131,7 +3041,6 @@ static void vnc_listen_websocket_read(void *opaque) + static const DisplayChangeListenerOps dcl_ops = { + .dpy_name = "vnc", + .dpy_refresh = vnc_refresh, +- .dpy_gfx_copy = vnc_dpy_copy, + .dpy_gfx_update = vnc_dpy_update, + .dpy_gfx_switch = vnc_dpy_switch, + .dpy_gfx_check_format = qemu_pixman_check_format, +-- +2.1.4 + Property changes on: head/sysutils/xen-tools47/files/xsa211-qemuu-4.7.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/sysutils/xen-tools47/files/0001-libs-xenstore-set-correct-FreeBSD-device.patch =================================================================== --- head/sysutils/xen-tools47/files/0001-libs-xenstore-set-correct-FreeBSD-device.patch (nonexistent) +++ head/sysutils/xen-tools47/files/0001-libs-xenstore-set-correct-FreeBSD-device.patch (revision 475254) @@ -0,0 +1,32 @@ +From 7ff99b232e0f91a5189f429498868bfccf8d7154 Mon Sep 17 00:00:00 2001 +From: Roger Pau Monne +Date: Mon, 12 Dec 2016 16:07:40 +0000 +Subject: [PATCH] libs/xenstore: set correct FreeBSD device +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The path to the xenstore FreeBSD device is /dev/xen/xenstore. + +Signed-off-by: Roger Pau Monné +Acked-by: Wei Liu +--- + tools/xenstore/xs_lib.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/tools/xenstore/xs_lib.c b/tools/xenstore/xs_lib.c +index 5ef3d6d..3e43f88 100644 +--- a/tools/xenstore/xs_lib.c ++++ b/tools/xenstore/xs_lib.c +@@ -85,6 +85,8 @@ const char *xs_domain_dev(void) + return "/proc/xen/xenbus"; + #elif defined(__NetBSD__) + return "/kern/xen/xenbus"; ++#elif defined(__FreeBSD__) ++ return "/dev/xen/xenstore"; + #else + return "/dev/xen/xenbus"; + #endif +-- +2.10.1 (Apple Git-78) + Property changes on: head/sysutils/xen-tools47/files/0001-libs-xenstore-set-correct-FreeBSD-device.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/sysutils/xen-tools47/files/0001-libxl-fix-creation-of-pkgconf-install-dir.patch =================================================================== --- head/sysutils/xen-tools47/files/0001-libxl-fix-creation-of-pkgconf-install-dir.patch (nonexistent) +++ head/sysutils/xen-tools47/files/0001-libxl-fix-creation-of-pkgconf-install-dir.patch (revision 475254) @@ -0,0 +1,35 @@ +From 45434adc3c94f5229744beaa12028aa23f63b9e7 Mon Sep 17 00:00:00 2001 +From: Roger Pau Monne +Date: Wed, 23 Nov 2016 16:56:39 +0000 +Subject: [PATCH] libxl: fix creation of pkgconf install dir +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +When PKG_INSTALLDIR was introduced the creation of the previous pkgconf install +directory was not changed. Fix this by correctly using PKG_INSTALLDIR for the +directory creation in libxl Makefile. + +Signed-off-by: Roger Pau Monné +Acked-by: Wei Liu +Release-acked-by: Wei Liu +--- + tools/libxl/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile +index f5053a0..ef01785 100644 +--- a/tools/libxl/Makefile ++++ b/tools/libxl/Makefile +@@ -308,7 +308,7 @@ install: all + $(INSTALL_DIR) $(DESTDIR)$(includedir) + $(INSTALL_DIR) $(DESTDIR)$(BASH_COMPLETION_DIR) + $(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN) +- $(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)/pkgconfig ++ $(INSTALL_DIR) $(DESTDIR)$(PKG_INSTALLDIR) + $(INSTALL_PROG) xl $(DESTDIR)$(sbindir) + $(INSTALL_PROG) libxl-save-helper $(DESTDIR)$(LIBEXEC_BIN) + $(INSTALL_SHLIB) libxenlight.so.$(MAJOR).$(MINOR) $(DESTDIR)$(libdir) +-- +2.9.3 (Apple Git-75) + Property changes on: head/sysutils/xen-tools47/files/0001-libxl-fix-creation-of-pkgconf-install-dir.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/sysutils/xen-tools47/files/0001-tools-configure-fix-pkg-config-install-path-for-Free.patch =================================================================== --- head/sysutils/xen-tools47/files/0001-tools-configure-fix-pkg-config-install-path-for-Free.patch (nonexistent) +++ head/sysutils/xen-tools47/files/0001-tools-configure-fix-pkg-config-install-path-for-Free.patch (revision 475254) @@ -0,0 +1,66 @@ +From 4000a7c7d7b0e01837abd3918e393f289c07d68c Mon Sep 17 00:00:00 2001 +From: Roger Pau Monne +Date: Tue, 25 Oct 2016 11:53:28 +0200 +Subject: [PATCH] tools/configure: fix pkg-config install path for FreeBSD +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +pkg-config from FreeBSD ports doesn't have ${prefix}/share/pkgconfig in the +default search path, fix this by having a PKG_INSTALLDIR variable that can +be changed on a per-OS basis. + +It would be best to use PKG_INSTALLDIR as defined by the pkg.m4 macro, but +sadly this also reports a wrong value on FreeBSD (${libdir}/pkgconfig, which +expands to /usr/local/lib/pkgconfig by default, and is also _not_ part of +the default pkg-config search path). + +This patch should not change the behavior for Linux installs. + +Signed-off-by: Roger Pau Monné +Reported-by: Alexander Nusov +Acked-by: Wei Liu +Release-acked-by: Wei Liu +--- + config/FreeBSD.mk | 1 + + config/Paths.mk.in | 2 ++ + tools/libxl/Makefile | 4 ++-- + 3 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/config/FreeBSD.mk b/config/FreeBSD.mk +index bb3a5d0..afeaefb 100644 +--- a/config/FreeBSD.mk ++++ b/config/FreeBSD.mk +@@ -2,3 +2,4 @@ include $(XEN_ROOT)/config/StdGNU.mk + + # No wget on FreeBSD base system + WGET = ftp ++PKG_INSTALLDIR = ${prefix}/libdata/pkgconfig +diff --git a/config/Paths.mk.in b/config/Paths.mk.in +index 62cea48..a603295 100644 +--- a/config/Paths.mk.in ++++ b/config/Paths.mk.in +@@ -56,3 +56,5 @@ XENFIRMWAREDIR := @XENFIRMWAREDIR@ + + XEN_CONFIG_DIR := @XEN_CONFIG_DIR@ + XEN_SCRIPT_DIR := @XEN_SCRIPT_DIR@ ++ ++PKG_INSTALLDIR := ${SHAREDIR}/pkgconfig +diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile +index 79e4019..af0a3ad 100644 +--- a/tools/libxl/Makefile ++++ b/tools/libxl/Makefile +@@ -320,8 +320,8 @@ install: all + $(INSTALL_DATA) libxlutil.a $(DESTDIR)$(libdir) + $(INSTALL_DATA) libxl.h libxl_event.h libxl_json.h _libxl_types.h _libxl_types_json.h _libxl_list.h libxl_utils.h libxl_uuid.h libxlutil.h $(DESTDIR)$(includedir) + $(INSTALL_DATA) bash-completion $(DESTDIR)$(BASH_COMPLETION_DIR)/xl.sh +- $(INSTALL_DATA) xenlight.pc $(DESTDIR)$(SHAREDIR)/pkgconfig/ +- $(INSTALL_DATA) xlutil.pc $(DESTDIR)$(SHAREDIR)/pkgconfig/ ++ $(INSTALL_DATA) xenlight.pc $(DESTDIR)$(PKG_INSTALLDIR) ++ $(INSTALL_DATA) xlutil.pc $(DESTDIR)$(PKG_INSTALLDIR) + + .PHONY: clean + clean: +-- +2.9.3 (Apple Git-75) + Property changes on: head/sysutils/xen-tools47/files/0001-tools-configure-fix-pkg-config-install-path-for-Free.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/sysutils/xen-tools47/files/var_paths.patch =================================================================== --- head/sysutils/xen-tools47/files/var_paths.patch (nonexistent) +++ head/sysutils/xen-tools47/files/var_paths.patch (revision 475254) @@ -0,0 +1,13 @@ +diff --git a/config/FreeBSD.mk b/config/FreeBSD.mk +index bb3a5d0..b072030 100644 +--- a/config/FreeBSD.mk ++++ b/config/FreeBSD.mk +@@ -2,3 +2,8 @@ include $(XEN_ROOT)/config/StdGNU.mk + + # No wget on FreeBSD base system + WGET = ftp ++ ++XEN_LIB_STORED := ${localstatedir}/db/xenstored ++XEN_LOCK_DIR := ${localstatedir}/db ++XEN_PAGING_DIR := ${localstatedir}/db/xen/xenpaging ++XEN_DUMP_DIR := ${localstatedir}/crash/xen Property changes on: head/sysutils/xen-tools47/files/var_paths.patch ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Index: head/sysutils/xen-tools47/pkg-descr =================================================================== --- head/sysutils/xen-tools47/pkg-descr (nonexistent) +++ head/sysutils/xen-tools47/pkg-descr (revision 475254) @@ -0,0 +1,5 @@ +The xl program is the new tool for managing Xen guest domains. The program can +be used to create, pause, and shutdown domains. It can also be used to list +current domains, enable or pin VCPUs, and attach or detach virtual block devices + +WWW: https://wiki.xen.org/wiki/XL Property changes on: head/sysutils/xen-tools47/pkg-descr ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/sysutils/xen-tools47/Makefile =================================================================== --- head/sysutils/xen-tools47/Makefile (nonexistent) +++ head/sysutils/xen-tools47/Makefile (revision 475254) @@ -0,0 +1,93 @@ +# $FreeBSD$ + +PORTNAME= xen +PKGNAMESUFFIX= -tools +PORTVERSION= 4.7.2 +PORTREVISION= 4 +CATEGORIES= sysutils emulators +MASTER_SITES= http://downloads.xenproject.org/release/xen/${PORTVERSION}/ + +MAINTAINER= royger@FreeBSD.org +COMMENT= Xen management tool, based on LibXenlight + +LICENSE= GPLv2 LGPL3 +LICENSE_COMB= multi + +BROKEN_FreeBSD_10= does not build + +LIB_DEPENDS= libyajl.so:devel/yajl \ + liblzo2.so:archivers/lzo2 \ + libpixman-1.so:x11/pixman \ + libargp.so:devel/argp-standalone +BUILD_DEPENDS= dev86>0:devel/dev86 \ + seabios>0:misc/seabios \ + markdown>0:textproc/markdown + +OPTIONS_DEFINE= DOCS + +ONLY_FOR_ARCHS= amd64 +ONLY_FOR_ARCHS_REASON= "not yet ported to anything other than amd64" + +USES= cpe gettext gmake libtool localbase:ldflags perl5 pkgconfig \ + python:2.7 shebangfix +USE_GNOME= glib20 +USE_LDCONFIG= yes +GNU_CONFIGURE= yes +MAKE_ARGS= clang=y +QEMU_ARGS= --disable-gtk \ + --disable-smartcard-nss \ + --disable-sdl \ + --disable-vte \ + --disable-curses \ + --disable-tools \ + --disable-curl \ + --cxx=c++ + +EXTRA_PATCHES= ${FILESDIR}/var_paths.patch:-p1 \ + ${FILESDIR}/0001-libxl-fix-creation-of-pkgconf-install-dir.patch:-p1 \ + ${FILESDIR}/0001-tools-configure-fix-pkg-config-install-path-for-Free.patch:-p1 \ + ${FILESDIR}/0001-libs-xenstore-set-correct-FreeBSD-device.patch:-p1 \ + ${FILESDIR}/kdd.patch:-p1 \ + ${FILESDIR}/0001-xenstored-apply-a-write-transaction-rate-limit.patch:-p1 \ + ${FILESDIR}/0002-xenstored-Log-when-the-write-transaction-rate-limit-.patch:-p1 \ + ${FILESDIR}/0001-Backport-of-commit-858dba.patch:-p1 + +CONFIGURE_ARGS+= --with-extra-qemuu-configure-args="${QEMU_ARGS}" \ + --with-system-seabios=${LOCALBASE}/share/seabios/bios.bin + +# Disable bash and xgettext tests, they are not needed on FreeBSD. +CONFIGURE_ENV+= ac_cv_path_BASH=${TRUE} + +SHEBANG_FILES= tools/misc/xen-ringwatch \ + tools/misc/xencov_split \ + tools/python/scripts/convert-legacy-stream \ + tools/python/scripts/verify-stream-v2 \ + tools/xenmon/xenmon.py + +ALL_TARGET= tools docs +INSTALL_TARGET= install-tools install-docs + +.include + +.if ${OPSYS} != FreeBSD +IGNORE= only supported on FreeBSD +.endif + +post-patch: + @${REINPLACE_CMD} "s,x86_64,amd64,g" ${WRKSRC}/tools/configure + @${REINPLACE_CMD} -e "s,/var/lib,/var/db,g" \ + ${WRKSRC}/tools/Makefile \ + ${WRKSRC}/tools/libxc/include/xenguest.h \ + ${WRKSRC}/tools/libxl/libxl_dom.c \ + ${WRKSRC}/tools/libxl/libxl_dm.c \ + ${WRKSRC}/tools/qemu-xen-traditional/i386-dm/helper2.c \ + ${WRKSRC}/docs/man/* + @for p in `ls ${FILESDIR}/*qemuu*.patch 2>/dev/null`; do \ + ${ECHO_CMD} "====> Applying $${p##*/}" ; \ + ${PATCH} -s -p1 -i $${p} -d ${WRKSRC}/tools/qemu-xen ; \ + done + +post-install: + ${MKDIR} ${STAGEDIR}/var/run/xen + +.include Property changes on: head/sysutils/xen-tools47/Makefile ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/sysutils/xen-tools47/distinfo =================================================================== --- head/sysutils/xen-tools47/distinfo (nonexistent) +++ head/sysutils/xen-tools47/distinfo (revision 475254) @@ -0,0 +1,3 @@ +TIMESTAMP = 1489085975 +SHA256 (xen-4.7.2.tar.gz) = 61494a56d9251e2108080f95b0dc8e3d175f1ba4da34603fc07b91cfebf358d5 +SIZE (xen-4.7.2.tar.gz) = 20714281 Property changes on: head/sysutils/xen-tools47/distinfo ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/sysutils/xen-tools47/pkg-plist =================================================================== --- head/sysutils/xen-tools47/pkg-plist (nonexistent) +++ head/sysutils/xen-tools47/pkg-plist (revision 475254) @@ -0,0 +1,606 @@ +bin/pygrub +bin/xen-cpuid +bin/xen-detect +bin/xenalyze +bin/xencons +bin/xencov_split +bin/xenstore +bin/xenstore-chmod +bin/xenstore-control +bin/xenstore-exists +bin/xenstore-list +bin/xenstore-ls +bin/xenstore-read +bin/xenstore-rm +bin/xenstore-watch +bin/xenstore-write +bin/xentrace_format +etc/bash_completion.d/xl.sh +etc/rc.d/xencommons +etc/rc.d/xendriverdomain +%%ETCDIR%%/README +%%ETCDIR%%/README.incompatibilities +%%ETCDIR%%/cpupool +%%ETCDIR%%/scripts/block +%%ETCDIR%%/scripts/hotplugpath.sh +%%ETCDIR%%/scripts/vif-bridge +%%ETCDIR%%/xl.conf +%%ETCDIR%%/xlexample.hvm +%%ETCDIR%%/xlexample.pvlinux +include/_libxl_list.h +include/_libxl_types.h +include/_libxl_types_json.h +include/fsimage.h +include/fsimage_grub.h +include/fsimage_plugin.h +include/libxl.h +include/libxl_event.h +include/libxl_json.h +include/libxl_utils.h +include/libxl_uuid.h +include/libxlutil.h +include/xen/COPYING +include/xen/arch-arm.h +include/xen/arch-arm/hvm/save.h +include/xen/arch-x86/cpufeatureset.h +include/xen/arch-x86/cpuid.h +include/xen/arch-x86/hvm/save.h +include/xen/arch-x86/pmu.h +include/xen/arch-x86/xen-mca.h +include/xen/arch-x86/xen-x86_32.h +include/xen/arch-x86/xen-x86_64.h +include/xen/arch-x86/xen.h +include/xen/arch-x86_32.h +include/xen/arch-x86_64.h +include/xen/callback.h +include/xen/dom0_ops.h +include/xen/domctl.h +include/xen/elfnote.h +include/xen/errno.h +include/xen/event_channel.h +include/xen/features.h +include/xen/foreign/arm32.h +include/xen/foreign/arm64.h +include/xen/foreign/x86_32.h +include/xen/foreign/x86_64.h +include/xen/gcov.h +include/xen/grant_table.h +include/xen/hvm/e820.h +include/xen/hvm/hvm_info_table.h +include/xen/hvm/hvm_op.h +include/xen/hvm/hvm_vcpu.h +include/xen/hvm/hvm_xs_strings.h +include/xen/hvm/ioreq.h +include/xen/hvm/params.h +include/xen/hvm/pvdrivers.h +include/xen/hvm/save.h +include/xen/io/blkif.h +include/xen/io/console.h +include/xen/io/fbif.h +include/xen/io/fsif.h +include/xen/io/kbdif.h +include/xen/io/libxenvchan.h +include/xen/io/netif.h +include/xen/io/pciif.h +include/xen/io/protocols.h +include/xen/io/ring.h +include/xen/io/tpmif.h +include/xen/io/usbif.h +include/xen/io/vscsiif.h +include/xen/io/xenbus.h +include/xen/io/xs_wire.h +include/xen/kexec.h +include/xen/memory.h +include/xen/nmi.h +include/xen/physdev.h +include/xen/platform.h +include/xen/pmu.h +include/xen/sched.h +include/xen/sys/evtchn.h +include/xen/sys/privcmd.h +include/xen/sysctl.h +include/xen/tmem.h +include/xen/trace.h +include/xen/vcpu.h +include/xen/version.h +include/xen/vm_event.h +include/xen/xen-compat.h +include/xen/xen.h +include/xen/xencomm.h +include/xen/xenoprof.h +include/xen/xsm/flask_op.h +include/xencall.h +include/xenctrl.h +include/xenctrl_compat.h +include/xenevtchn.h +include/xenforeignmemory.h +include/xengnttab.h +include/xenguest.h +include/xenstat.h +include/xenstore-compat/xs.h +include/xenstore-compat/xs_lib.h +include/xenstore.h +include/xenstore_lib.h +include/xentoollog.h +include/xs.h +include/xs_lib.h +lib/fs/ext2fs/fsimage.so +lib/fs/fat/fsimage.so +lib/fs/iso9660/fsimage.so +lib/fs/reiserfs/fsimage.so +lib/fs/ufs/fsimage.so +lib/fs/xfs/fsimage.so +lib/fs/zfs/fsimage.so +lib/libfsimage.so +lib/libfsimage.so.1.0 +lib/libfsimage.so.1.0.0 +lib/libxencall.a +lib/libxencall.so +lib/libxencall.so.1 +lib/libxencall.so.1.0 +lib/libxenctrl.a +lib/libxenctrl.so +lib/libxenctrl.so.4.7 +lib/libxenctrl.so.4.7.0 +lib/libxenevtchn.a +lib/libxenevtchn.so +lib/libxenevtchn.so.1 +lib/libxenevtchn.so.1.0 +lib/libxenforeignmemory.a +lib/libxenforeignmemory.so +lib/libxenforeignmemory.so.1 +lib/libxenforeignmemory.so.1.0 +lib/libxengnttab.a +lib/libxengnttab.so +lib/libxengnttab.so.1 +lib/libxengnttab.so.1.0 +lib/libxenguest.a +lib/libxenguest.so +lib/libxenguest.so.4.7 +lib/libxenguest.so.4.7.0 +lib/libxenlight.a +lib/libxenlight.so +lib/libxenlight.so.4.7 +lib/libxenlight.so.4.7.0 +lib/libxenstat.a +lib/libxenstat.so +lib/libxenstat.so.0 +lib/libxenstat.so.0.0 +lib/libxenstore.a +lib/libxenstore.so +lib/libxenstore.so.3.0 +lib/libxenstore.so.3.0.3 +lib/libxentoollog.a +lib/libxentoollog.so +lib/libxentoollog.so.1 +lib/libxentoollog.so.1.0 +lib/libxlutil.a +lib/libxlutil.so +lib/libxlutil.so.4.7 +lib/libxlutil.so.4.7.0 +%%PYTHON_SITELIBDIR%%/fsimage.so +%%PYTHON_SITELIBDIR%%/grub/ExtLinuxConf.py +%%PYTHON_SITELIBDIR%%/grub/ExtLinuxConf.pyc +%%PYTHON_SITELIBDIR%%/grub/GrubConf.py +%%PYTHON_SITELIBDIR%%/grub/GrubConf.pyc +%%PYTHON_SITELIBDIR%%/grub/LiloConf.py +%%PYTHON_SITELIBDIR%%/grub/LiloConf.pyc +%%PYTHON_SITELIBDIR%%/grub/__init__.py +%%PYTHON_SITELIBDIR%%/grub/__init__.pyc +%%PYTHON_SITELIBDIR%%/pygrub-0.3-py%%PYTHON_VER%%.egg-info +%%PYTHON_SITELIBDIR%%/xen-3.0-py%%PYTHON_VER%%.egg-info +%%PYTHON_SITELIBDIR%%/xen/__init__.py +%%PYTHON_SITELIBDIR%%/xen/__init__.pyc +%%PYTHON_SITELIBDIR%%/xen/lowlevel/__init__.py +%%PYTHON_SITELIBDIR%%/xen/lowlevel/__init__.pyc +%%PYTHON_SITELIBDIR%%/xen/lowlevel/xc.so +%%PYTHON_SITELIBDIR%%/xen/lowlevel/xs.so +%%PYTHON_SITELIBDIR%%/xen/migration/__init__.py +%%PYTHON_SITELIBDIR%%/xen/migration/__init__.pyc +%%PYTHON_SITELIBDIR%%/xen/migration/legacy.py +%%PYTHON_SITELIBDIR%%/xen/migration/legacy.pyc +%%PYTHON_SITELIBDIR%%/xen/migration/libxc.py +%%PYTHON_SITELIBDIR%%/xen/migration/libxc.pyc +%%PYTHON_SITELIBDIR%%/xen/migration/libxl.py +%%PYTHON_SITELIBDIR%%/xen/migration/libxl.pyc +%%PYTHON_SITELIBDIR%%/xen/migration/public.py +%%PYTHON_SITELIBDIR%%/xen/migration/public.pyc +%%PYTHON_SITELIBDIR%%/xen/migration/tests.py +%%PYTHON_SITELIBDIR%%/xen/migration/tests.pyc +%%PYTHON_SITELIBDIR%%/xen/migration/verify.py +%%PYTHON_SITELIBDIR%%/xen/migration/verify.pyc +%%PYTHON_SITELIBDIR%%/xen/migration/xl.py +%%PYTHON_SITELIBDIR%%/xen/migration/xl.pyc +lib/xen/bin/convert-legacy-stream +lib/xen/bin/libxl-save-helper +lib/xen/bin/lsevtchn +lib/xen/bin/pygrub +lib/xen/bin/qemu-system-i386 +lib/xen/bin/readnotes +lib/xen/bin/verify-stream-v2 +lib/xen/bin/xen-init-dom0 +lib/xen/bin/xenconsole +lib/xen/bin/xenctx +lib/xen/bin/xenpaging +lib/xen/bin/xenpvnetboot +lib/xen/boot/hvmloader +man/man1/xenstore-chmod.1.gz +man/man1/xenstore-ls.1.gz +man/man1/xenstore.1.gz +man/man1/xentop.1.gz +man/man1/xentrace_format.1.gz +man/man1/xl.1.gz +man/man5/xl.cfg.5.gz +man/man5/xl.conf.5.gz +man/man5/xlcpupool.cfg.5.gz +man/man8/xentrace.8.gz +sbin/flask-get-bool +sbin/flask-getenforce +sbin/flask-label-pci +sbin/flask-loadpolicy +sbin/flask-set-bool +sbin/flask-setenforce +sbin/gdbsx +sbin/gtracestat +sbin/gtraceview +sbin/kdd +sbin/xen-bugtool +sbin/xen-hptool +sbin/xen-hvmcrash +sbin/xen-hvmctx +sbin/xen-lowmemd +sbin/xen-mfndump +sbin/xen-ringwatch +sbin/xen-tmem-list-parse +sbin/xen-livepatch +sbin/xenbaked +sbin/xenconsoled +sbin/xencov +sbin/xenlockprof +sbin/xenmon.py +sbin/xenperf +sbin/xenpm +sbin/xenpmd +sbin/xenstored +sbin/xentop +sbin/xentrace +sbin/xentrace_setmask +sbin/xentrace_setsize +sbin/xenwatchdogd +sbin/xl +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/.deps +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,arch-arm,hvm,save.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,arch-arm.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,callback.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,dom0_ops.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,domctl.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,elfnote.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,errno.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,event_channel.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,features.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,gcov.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,grant_table.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,e820.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,hvm_info_table.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,hvm_op.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,hvm_vcpu.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,hvm_xs_strings.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,ioreq.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,params.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,pvdrivers.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,save.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,blkif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,console.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,fbif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,fsif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,kbdif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,libxenvchan.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,netif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,pciif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,protocols.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,ring.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,tpmif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,usbif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,vscsiif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,xenbus.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,xs_wire.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,kexec.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,memory.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,nmi.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,physdev.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,platform.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,pmu.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,sched.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,sysctl.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,tmem.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,trace.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,vcpu.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,version.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,vm_event.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,xen-compat.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,xen.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,xencomm.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,xenoprof.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,xsm,flask_op.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,xen,errno.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/index.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/index.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/.deps +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86,cpufeatureset.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86,cpuid.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86,hvm,save.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86,pmu.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86,xen-mca.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86,xen-x86_32.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86,xen.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86_32.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,callback.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,dom0_ops.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,domctl.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,elfnote.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,errno.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,event_channel.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,features.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,gcov.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,grant_table.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,e820.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,hvm_info_table.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,hvm_op.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,hvm_vcpu.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,hvm_xs_strings.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,ioreq.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,params.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,pvdrivers.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,save.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,blkif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,console.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,fbif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,fsif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,kbdif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,libxenvchan.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,netif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,pciif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,protocols.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,ring.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,tpmif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,usbif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,vscsiif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,xenbus.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,xs_wire.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,kexec.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,memory.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,nmi.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,physdev.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,platform.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,pmu.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,sched.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,sysctl.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,tmem.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,trace.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,vcpu.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,version.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,vm_event.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,xen-compat.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,xen.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,xencomm.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,xenoprof.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,xsm,flask_op.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,xen,errno.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/index.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/.deps +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86,cpufeatureset.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86,cpuid.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86,hvm,save.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86,pmu.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86,xen-mca.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86,xen-x86_64.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86,xen.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86_64.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,callback.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,dom0_ops.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,domctl.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,elfnote.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,errno.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,event_channel.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,features.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,gcov.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,grant_table.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,e820.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,hvm_info_table.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,hvm_op.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,hvm_vcpu.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,hvm_xs_strings.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,ioreq.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,params.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,pvdrivers.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,save.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,blkif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,console.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,fbif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,fsif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,kbdif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,libxenvchan.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,netif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,pciif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,protocols.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,ring.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,tpmif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,usbif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,vscsiif.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,xenbus.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,xs_wire.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,kexec.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,memory.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,nmi.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,physdev.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,platform.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,pmu.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,sched.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,sysctl.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,tmem.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,trace.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,vcpu.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,version.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,vm_event.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,xen-compat.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,xen.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,xencomm.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,xenoprof.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,xsm,flask_op.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,xen,errno.h.html +%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/index.html +%%PORTDOCS%%%%DOCSDIR%%/html/index.html +%%PORTDOCS%%%%DOCSDIR%%/html/man/index.html +%%PORTDOCS%%%%DOCSDIR%%/html/man/xenstore-chmod.1.html +%%PORTDOCS%%%%DOCSDIR%%/html/man/xenstore-ls.1.html +%%PORTDOCS%%%%DOCSDIR%%/html/man/xenstore.1.html +%%PORTDOCS%%%%DOCSDIR%%/html/man/xentop.1.html +%%PORTDOCS%%%%DOCSDIR%%/html/man/xentrace.8.html +%%PORTDOCS%%%%DOCSDIR%%/html/man/xentrace_format.1.html +%%PORTDOCS%%%%DOCSDIR%%/html/man/xl.1.html +%%PORTDOCS%%%%DOCSDIR%%/html/man/xl.cfg.5.html +%%PORTDOCS%%%%DOCSDIR%%/html/man/xl.conf.5.html +%%PORTDOCS%%%%DOCSDIR%%/html/man/xlcpupool.cfg.5.html +%%PORTDOCS%%%%DOCSDIR%%/html/misc/amd-ucode-container.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/booting.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/device-tree/booting.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/device-tree/guest.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/device-tree/index.html +%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/device-tree/passthrough.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/early-printk.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/index.html +%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/passthrough.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/block-scripts.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/channel.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/console.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/coverage.html +%%PORTDOCS%%%%DOCSDIR%%/html/misc/crashdb.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/distro_mapping.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/dump-core-format.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/efi.html +%%PORTDOCS%%%%DOCSDIR%%/html/misc/grant-tables.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/hvm-emulated-unplug.html +%%PORTDOCS%%%%DOCSDIR%%/html/misc/hvmlite.html +%%PORTDOCS%%%%DOCSDIR%%/html/misc/index.html +%%PORTDOCS%%%%DOCSDIR%%/html/misc/kconfig-language.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/kconfig.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/kexec_and_kdump.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/libxl_memory.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/pci-device-reservations.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/printk-formats.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/pvh-readme.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/pvh.html +%%PORTDOCS%%%%DOCSDIR%%/html/misc/qemu-backends.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/qemu-deprivilege.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/stubdom.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/tscmode.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/vbd-interface.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/vtd-pi.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/vtd.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/vtpm-platforms.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/vtpm.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/vtpmmgr.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/x86-xenpv-bootloader.html +%%PORTDOCS%%%%DOCSDIR%%/html/misc/xen-command-line.html +%%PORTDOCS%%%%DOCSDIR%%/html/misc/xen-error-handling.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/xenmon.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/xenpaging.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/xenstore-paths.html +%%PORTDOCS%%%%DOCSDIR%%/html/misc/xenstore-ring.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/xenstore.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/xl-disk-configuration.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/xl-network-configuration.html +%%PORTDOCS%%%%DOCSDIR%%/html/misc/xl-numa-placement.html +%%PORTDOCS%%%%DOCSDIR%%/html/misc/xl-psr.html +%%PORTDOCS%%%%DOCSDIR%%/html/misc/xsm-flask.txt +%%PORTDOCS%%%%DOCSDIR%%/html/misc/livepatch.html +libdata/pkgconfig/xenlight.pc +libdata/pkgconfig/xlutil.pc +share/qemu-xen/qemu/QEMU,cgthree.bin +share/qemu-xen/qemu/QEMU,tcx.bin +share/qemu-xen/qemu/acpi-dsdt.aml +share/qemu-xen/qemu/bamboo.dtb +share/qemu-xen/qemu/bios-256k.bin +share/qemu-xen/qemu/bios.bin +share/qemu-xen/qemu/efi-e1000.rom +share/qemu-xen/qemu/efi-eepro100.rom +share/qemu-xen/qemu/efi-ne2k_pci.rom +share/qemu-xen/qemu/efi-pcnet.rom +share/qemu-xen/qemu/efi-rtl8139.rom +share/qemu-xen/qemu/efi-virtio.rom +share/qemu-xen/qemu/keymaps/ar +share/qemu-xen/qemu/keymaps/bepo +share/qemu-xen/qemu/keymaps/common +share/qemu-xen/qemu/keymaps/cz +share/qemu-xen/qemu/keymaps/da +share/qemu-xen/qemu/keymaps/de +share/qemu-xen/qemu/keymaps/de-ch +share/qemu-xen/qemu/keymaps/en-gb +share/qemu-xen/qemu/keymaps/en-us +share/qemu-xen/qemu/keymaps/es +share/qemu-xen/qemu/keymaps/et +share/qemu-xen/qemu/keymaps/fi +share/qemu-xen/qemu/keymaps/fo +share/qemu-xen/qemu/keymaps/fr +share/qemu-xen/qemu/keymaps/fr-be +share/qemu-xen/qemu/keymaps/fr-ca +share/qemu-xen/qemu/keymaps/fr-ch +share/qemu-xen/qemu/keymaps/hr +share/qemu-xen/qemu/keymaps/hu +share/qemu-xen/qemu/keymaps/is +share/qemu-xen/qemu/keymaps/it +share/qemu-xen/qemu/keymaps/ja +share/qemu-xen/qemu/keymaps/lt +share/qemu-xen/qemu/keymaps/lv +share/qemu-xen/qemu/keymaps/mk +share/qemu-xen/qemu/keymaps/modifiers +share/qemu-xen/qemu/keymaps/nl +share/qemu-xen/qemu/keymaps/nl-be +share/qemu-xen/qemu/keymaps/no +share/qemu-xen/qemu/keymaps/pl +share/qemu-xen/qemu/keymaps/pt +share/qemu-xen/qemu/keymaps/pt-br +share/qemu-xen/qemu/keymaps/ru +share/qemu-xen/qemu/keymaps/sl +share/qemu-xen/qemu/keymaps/sv +share/qemu-xen/qemu/keymaps/th +share/qemu-xen/qemu/keymaps/tr +share/qemu-xen/qemu/kvmvapic.bin +share/qemu-xen/qemu/linuxboot.bin +share/qemu-xen/qemu/multiboot.bin +share/qemu-xen/qemu/openbios-ppc +share/qemu-xen/qemu/openbios-sparc32 +share/qemu-xen/qemu/openbios-sparc64 +share/qemu-xen/qemu/palcode-clipper +share/qemu-xen/qemu/petalogix-ml605.dtb +share/qemu-xen/qemu/petalogix-s3adsp1800.dtb +share/qemu-xen/qemu/ppc_rom.bin +share/qemu-xen/qemu/pxe-e1000.rom +share/qemu-xen/qemu/pxe-eepro100.rom +share/qemu-xen/qemu/pxe-ne2k_pci.rom +share/qemu-xen/qemu/pxe-pcnet.rom +share/qemu-xen/qemu/pxe-rtl8139.rom +share/qemu-xen/qemu/pxe-virtio.rom +share/qemu-xen/qemu/q35-acpi-dsdt.aml +share/qemu-xen/qemu/qemu-icon.bmp +share/qemu-xen/qemu/qemu_logo_no_text.svg +share/qemu-xen/qemu/s390-ccw.img +share/qemu-xen/qemu/s390-zipl.rom +share/qemu-xen/qemu/sgabios.bin +share/qemu-xen/qemu/slof.bin +share/qemu-xen/qemu/spapr-rtas.bin +share/qemu-xen/qemu/trace-events +share/qemu-xen/qemu/u-boot.e500 +share/qemu-xen/qemu/vgabios-cirrus.bin +share/qemu-xen/qemu/vgabios-qxl.bin +share/qemu-xen/qemu/vgabios-stdvga.bin +share/qemu-xen/qemu/vgabios-virtio.bin +share/qemu-xen/qemu/vgabios-vmware.bin +share/qemu-xen/qemu/vgabios.bin +@dir %%ETCDIR%%/auto +@dir /var/crash/xen +@dir /var/db/xen/xenpaging +@dir /var/db/xen +@dir /var/db/xenstored +@dir /var/log/xen +@dir /var/run/xen Property changes on: head/sysutils/xen-tools47/pkg-plist ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property