Release of libvirt-1.3.1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



  As planned I just tagged the release in git and pushed signed tarball
and rpms to the usual place:

  ftp://libvirt.org/libvirt/

 I also tagged and pushed a python release though there is no change from
1.3.0:

  ftp://libvirt.org/libvirt/python/

  This is a moderately large release with close to 300 commits packed
in, one security patch for CVE-2015-5313, and some user visible feature
improvement. There is also a lot of refactoring in code, makefiles etc
along with other improvements and the usual flow of bug fixes:


Features:
- Various improvements for the Xen libxl driver (Jim Fehlig)
- rbd: Add support for wiping and cloning images to storage driver (Wido den Hollander)
- PCI hostdev improvements and fixes (Andrea Bolognani)

Security:
- CVE-2015-5313: storage: don't allow '/' in filesystem volume names (Eric Blake)

Documentation:
- virsh: Update description of lxc-enter-namespace (Guido Günther)
- virsh: Document the --timestamp option (Andrea Bolognani)
- docs: update to properly reflect meaning of fields in log filter (Laine Stump)
- virStorageVolWipe: Document that wiping journaled FS is useless (Michal Privoznik)
- storage: Add comments for backend APIs (John Ferlan)

Portability:
- build: fix distdir with wireshark disabled (Cole Robinson)
- wireshark: Install into DESTDIR (Michal Privoznik)
- cgroup: don't include sys/mount.h if not needed (Jasper Lievisse Adriaanse)
- tools: Disable virt-login-shell on mingw (Michal Privoznik)
- sysconf: Include unistd.h (Michal Privoznik)
- Allow building lxc without virt-login-shell (Cédric Bosdonnat)
- build: disable vbox on cygwin (Eric Blake)
- virNetDevMacVLanTapSetup: Work around older systems (Michal Privoznik)

Bug Fixes:
- security: Do not restore labels on device tree binary (Jiri Denemark)
- security: Do not restore kernel and initrd labels (Jiri Denemark)
- cgroup: Fix possible bug as a result of code motion for vcpu cgroup setup (John Ferlan)
- Revert "lxc_cgroup: Add check for NULL cgroup before AddTask call" (John Ferlan)
- Revert "util: cgroups do not implicitly add task to new machine cgroup" (John Ferlan)
- Revert "qemu: do not put a task into machine cgroup" (John Ferlan)
- virt-aa-helper: don't deny writes to readonly mounts (Cédric Bosdonnat)
- conf: Initialize 'deflate' for balloon parse XML (John Ferlan)
- wireshark: Drop DESTDIR from install path (Michal Privoznik)
- qemuProcessCleanupChardevDevice: Don't unlink NULL paths (Michal Privoznik)
- xenconfig: check return value of regcomp (Jim Fehlig)
- Xen: use correct domctl version in domaininfolist union (Jim Fehlig)
- testutils: Fix coverity warning with REGENERATE_OUTPUT (Cole Robinson)
- rpc: socket: Don't repeatedly attempt to launch daemon (Cole Robinson)
- rpc: socket: Explicitly error if we exceed retry count (Cole Robinson)
- rpc: Don't rewrite msg->fds on every read dispatch (Ben Gray)
- util: eliminate bogus error log in virNetDevVPortProfileGetStatus (Laine Stump)
- qemu: Set virtio channel state sooner (Michal Privoznik)
- virDomainGetTime: Deny on RO connections (Michal Privoznik)
- virDomainInterfaceAddresses: Allow API on RO connection too (Michal Privoznik)
- Don't clear libvirt-internal paths when parsing status XML (Martin Kletzander)
- virDomainMigrateUnmanagedParams: Don't blindly dereference @dconnuri (Michal Privoznik)
- Fix USB model defaults for ppc64 (Martin Kletzander)
- Avoid wild securityManager pointer in tests (Martin Kletzander)
- tests: Fix running schematests directly from topdir (Cole Robinson)
- qemu: Fix crash when defining XML with bogus emulator (Cole Robinson)
- tests.nwfilterebiptablestest: swap actual and expected (Pavel Hrdina)
- qemu: Fix NBD migration with default listenAddress (Jiri Denemark)
- virLogVMessage: Don't leak rawinitmsg (Michal Privoznik)
- virLogHostnameString: Don't leak hostname (Michal Privoznik)
- virsh: Interrupt *event --loop on disconnect (Jiri Denemark)
- virsh: Pass ctl to virshCatchDisconnect (Jiri Denemark)
- qemu: Don't bother user with libvirt-internal paths (Martin Kletzander)
- rbd: Do not append Ceph monitor port number 6789 if not provided (Wido den Hollander)
- rbd: Do not error out on a single image during pool refresh (Wido den Hollander)
- rbd: Only close RBD image if it has been opened (Wido den Hollander)
- fix LSB part of virtlogd runlevel script (Olaf Hering)
- virtlogd: fix lock file path in initscript (Michael Chapman)
- spec: chkconfig(8) and service(8) are in /sbin/, not /bin/ (Michael Chapman)
- spec: dbus-devel is needed as build dependency if polkit support is enabled (Michael Chapman)
- storage: Clean up error path for create buildPool failure (John Ferlan)
- libvirt-domain: fix dxml passing in virDomainMigrateToURI2 (Ján Tomko)
- schema: interleave domain name and uuid with other elements (Ján Tomko)
- qemu: Fix return value of qemuDomainGetBlockJobInfo (Michal Privoznik)
- storage: do not leak storage pool XML filename (Michael Chapman)
- qemu: do not leak NBD disk data in migration cookie (Michael Chapman)
- qemu: do not copy out non-existent block job info (Michael Chapman)
- vz: BUG: fix connecting hang in case of init failure (Maxim Nestratov)
- storage: Fix startup issue for logical pool (John Ferlan)
- qemu: Fix event generated for qemuDomainRevertToSnapshot (pause->run) (John Ferlan)
- storage: Check FS pool source during virStorageBackendFileSystemIsMounted (John Ferlan)
- qemuMonitorJSONEjectMedia: Don't leak stringified reply (Michal Privoznik)
- virNetDevMacVLanTapSetup: Drop @multiqueue argument (Michal Privoznik)
- qemu: Warn when using vhost-user without shared memory (Martin Kletzander)
- storage: Ignore block devices that fail format detection (John Ferlan)
- storage: Set ret = -1 on failures in virStorageBackendUpdateVolTargetInfo (John Ferlan)
- qemu: cgroup: Don't use priv->ncpupids to iterate domain vCPUs (Peter Krempa)
- qemu: cpu hotplug: Fix error handling logic (Peter Krempa)
- qemu: qemuDomainSetVcpusAgent: re-check agent before calling it the again (Peter Krempa)
- libxl: copy persistent domain definition while starting a guest (Pavel Hrdina)
- xen: fix timer bug found by updated test (Pavel Hrdina)

Improvements:
- qemu: Print better warning in qemuAgentNotifyEvent (Yaniv Kaul)
- build: Kill tools/wireshark Makefiles (Cole Robinson)
- Expand $(wildcard) correctly (Michal Privoznik)
- qemu: add support of optional 'autodeflate' attribute (Dmitry Andreev)
- qemu: add capability check for memballoon 'deflate-on-oom' feature (Dmitry Andreev)
- conf: introduce 'autodeflate' attribute for memballoon device (Dmitry Andreev)
- rpc: socket: Minor cleanups (Cole Robinson)
- Add missing virxdrdefs.h include to log_protocol (Roman Bogorodskiy)
- virsh: Fix alignment in VIRSH_COMMON_OPT_CONFIG definition (Andrea Bolognani)
- virsh: Create macro for common "interface" option (John Ferlan)
- virsh: Create macro for common "network" option (John Ferlan)
- virsh: Create macros for common "vol" options (John Ferlan)
- virsh: Create macro for common "file" option (John Ferlan)
- virsh: Create macro for common "current" option (John Ferlan)
- virsh: Create macro for common "live" option (John Ferlan)
- virsh: Create macro for common "config" option (John Ferlan)
- virsh: Create macro for common "persistent" option (John Ferlan)
- virsh: Create macro for common "domain" option (John Ferlan)
- virsh: Adjustments for the VIRSH_COMMON_OPT_POOL (John Ferlan)
- virsh: Convert VSH_POOL_ macro to VIRSH_COMMON_OPT_ (John Ferlan)
- qemu: use enum when setting PCI "multi" value, not 0 or 1 (Laine Stump)
- qemu: auto-add a USB2 controller set for Q35 machines (Laine Stump)
- qemu: define virDomainDevAddUSBController() (Laine Stump)
- conf: add virDomainDefAddController() (Laine Stump)
- qemu: prefer 00:1D.x and 00:1A.x for USB2 controllers on Q35 (Laine Stump)
- qemu: don't assume slot 0 is unused/reserved. (Laine Stump)
- Unify int types handling in protocol files (Jasper Lievisse Adriaanse)
- Use struct sockpeercred when available (Jasper Lievisse Adriaanse)
- build: Kill docs/schemas/Makefile.am (Cole Robinson)
- build: Kill include/libvirt/Makefile.am (Cole Robinson)
- wireshark: Fix header of get_message_len() (Michal Privoznik)
- wireshark: Replace WIRESHARK_COMPAT with actual version comparison (Michal Privoznik)
- wireshark: s/tvb_length/tvb_captured_length/ (Michal Privoznik)
- wireshark: s/ep_alloc/wmem_alloc/ (Michal Privoznik)
- wireshark: s/proto_tree_add_text/proto_tree_add_item/ (Michal Privoznik)
- qemu: Introduce QEMU_CAPS_VSERPORT_CHANGE (Michal Privoznik)
- qemu: change qemuFindAgentConfig return type (Michal Privoznik)
- Fix LSB requirements in service script and sync them (Martin Kletzander)
- virsh: Add timestamps to network events (Andrea Bolognani)
- virsh: Add timestamps to QEMU monitor events (Andrea Bolognani)
- Provide parse flags to PostParse functions (Martin Kletzander)
- qemu: command: wire up usage of q35/ich9 disable s3/s4 (Cole Robinson)
- qemu: caps: check for q35/ICH9 disable S3/S4 (Cole Robinson)
- qemu: caps: Rename CAPS_DISABLE_S[34] to CAPS_PIIX_DISABLE_S[34] (Cole Robinson)
- qemu: capabilities: s/Pixx/Piix/g (Cole Robinson)
- examples: Use one top level makefile (Cole Robinson)
- cfg.mk: Drop period after filename for indent failures (Cole Robinson)
- virt-host-validate-common: Print warning on missing IOMMU (Michal Privoznik)
- tests: qemuxml2xml: Wire up QEMUCaps usage (Cole Robinson)
- tests: add genericxml2xmltest (Cole Robinson)
- tests: qemuxml2xml: drop early file loading (Cole Robinson)
- tests: Share domain XML2XML compare helper (Cole Robinson)
- tests: Add newlines with VIR_TEST_REGENERATE_OUTPUT (Cole Robinson)
- libxl: support vif outgoing bandwidth QoS (Jim Fehlig)
- xenconfig: support vif bandwidth in xm and xl parser and formatter (Jim Fehlig)
- xenconfig: support vif bandwidth in sexpr parser and formatter (Jim Fehlig)
- util: add missing newline (Laine Stump)
- tests: qemuxml2argv: Add tests for USB controller on q35 (Andrea Bolognani)
- tests: qemuxml2xml: Convert fprintf to VIR_TEST_DEBUG (Cole Robinson)
- qemu: Handle SecurityManagerVerify in post parse (Cole Robinson)
- qemu: Handle CanonicalizeMachine in post parse (Cole Robinson)
- qemu: domain: split out post parse default device handling (Cole Robinson)
- domain: separate out function for post parse timer validation (Cole Robinson)
- domain: separate out function for post parse console compat (Cole Robinson)
- qemu: Refactor qemuMigrationFinish (Jiri Denemark)
- qemu: Report more migration statistics (Jiri Denemark)
- qemu: Create a proper type for migration status enum (Jiri Denemark)
- qemu: Rename qemuMonitorMigrationStatus struct (Jiri Denemark)
- qemu: Reorder migration status enum (Jiri Denemark)
- tests.testutils: use virTestDifferenceFull in virtTestCompareToFile (Pavel Hrdina)
- tests.testutils: use VIR_TEST_REGENERATE_OUTPUT for virTestDifferenceFull (Pavel Hrdina)
- tests: add helper for VIR_TEST_REGENERATE_OUTPUT flag (Pavel Hrdina)
- xen: move virDomainDefPostParse to xenParseSxpr (Pavel Hrdina)
- Remove non-breaking space in comment (Martin Kletzander)
- virsh: Add timestamps to events (Jiri Denemark)
- virsh: Refactor event printing (Jiri Denemark)
- pci: Log debug messages when manipulating the inactive list (Andrea Bolognani)
- qemu: Add debug message to spice migration (Jiri Denemark)
- qemu: snapshot: Skip 'transaction' command when no disks are selected (Peter Krempa)
- qemu: Specify format= iff disk source is not empty (Michal Privoznik)
- conf: Rework code around 'append' attribute (Dmitry Mishin)
- Use tristate constants for new 'append' field (Dmitry Mishin)
- docs: Describe new 'append' attribute for chardevs source (Dmitry Mishin)
- Fix formatting for virDomainGetCPUStats docstring (Martin Kletzander)
- maint: update to latest gnulib (Eric Blake)
- util: reduce debug log in virPCIGetVirtualFunctions() (Laine Stump)
- util: improve error reporting in virNetDevVPortProfileGetStatus (Laine Stump)
- util: report the MAC address that couldn't be set (Laine Stump)
- rbd: Return VIR_STORAGE_FILE_RAW as format for RBD volumes (Wido den Hollander)
- tests: Make test-wrap-argv.pl executable (Michal Privoznik)
- tools: Include PIE_LDFLAGS at the correct place (Michal Privoznik)
- qemu: Process new 'append' attribute for char dev with output to a file (Dmitry Mishin)
- conf: Add new 'append' attribute for chardevs with file source (Dmitry Mishin)
- tests: add qemu 2.6 caps test (Dmitry Mishin)
- vz: support additional flags in domain undefine (Maxim Nestratov)
- vz: move prlsdkCleanupBridgedNet after domain deletion (Maxim Nestratov)
- vz: delete domains when undefine is called (Maxim Nestratov)
- hostdev: Emit debug messages while handling PCI hostdevs (Andrea Bolognani)
- hostdev: Only rollback detach of managed devices on error (Andrea Bolognani)
- hostdev: Mark PCI devices as inactive as they're detached (Andrea Bolognani)
- pci: Introduce virPCIStubDriver enumeration (Andrea Bolognani)
- pci: Remove 'reprobe' parameter from virPCIDeviceUnbind() (Andrea Bolognani)
- pci: Remove redundant parameter from virPCIDeviceBindToStub() (Andrea Bolognani)
- Revert "admin: Rename virAdmConnect to virAdmDaemon" (Erik Skultety)
- Xen: support maxvcpus in xm and xl config (Jim Fehlig)
- virsh: Add --delete-snapshots flag for undefine and vol-delete (John Ferlan)
- libvirt: Add virStorageVolDeleteFlags to virStorageVolDelete (John Ferlan)
- storage: Add virCheckFlags to virStorageBackendRBDDeleteVol (John Ferlan)
- lxc_cgroup: Add check for NULL cgroup before AddTask call (John Ferlan)
- Xen: remove xendConfigVersion from driver private struct (Jim Fehlig)
- Xen: xenconfig: remove xendConfigVersion from public sexpr functions (Jim Fehlig)
- Xen: xend: remove use of XEND_CONFIG_VERSION (Jim Fehlig)
- Xen: xen_driver: remove use of XEND_CONFIG_VERSION (Jim Fehlig)
- Xen: xenconfig: remove use of XEND_CONFIG_VERSION in xen_sxpr (Jim Fehlig)
- Xen: tests: use latest XEND_CONFIG_VERSION in xml2sexpr tests (Jim Fehlig)
- Xen: xenconfig: remove disks from '(image)' sexpr (Jim Fehlig)
- Xen: tests: use latest XEND_CONFIG_VERSION in sexpr2xml tests (Jim Fehlig)
- Xen: xenconfig: remove xendConfigVersion from public functions (Jim Fehlig)
- Xen: xenconfig: remove use of XEND_CONFIG_VERSION in xen_xm (Jim Fehlig)
- Xen: xenconfig: remove XEND_CONFIG_VERSION in common code (Jim Fehlig)
- Xen: tests: use latest XEND_CONFIG_VERSION in xm/xl tests (Jim Fehlig)
- Xen: tests: remove old xml2sexpr tests (Jim Fehlig)
- Xen: tests: remove old sexpr2xml tests (Jim Fehlig)
- Xen: tests: remove net-ioemu xm config test (Jim Fehlig)
- Xen: tests: remove old xm config tests (Jim Fehlig)
- virsh: Add build flags to pool-create[-as] and pool-start (John Ferlan)
- virsh: Create a macro for pool-define-as and pool-create-as options (John Ferlan)
- virsh: Create macro for "overwrite" and no-overwrite" options (John Ferlan)
- virsh: Create macro for "file" option (John Ferlan)
- virsh: Create macro for "pool" option (John Ferlan)
- storage: Add flags to allow building pool during create processing (John Ferlan)
- mark virDomainVirtioSerialAddrSetAddController as static. (Ján Tomko)
- Remove dead code from qemuDomainAttachControllerDevice (Ján Tomko)
- qemu_hotplug: remove qemuDomainAttachDeviceControllerLive (Ján Tomko)
- storage: Attempt to refresh volume after successful wipe volume (John Ferlan)
- virStorageBackendWipeLocal: remove bytes_wiped argument (Ján Tomko)
- storage: drop 'Extent' from virStorageBackendWipeExtentLocal (Ján Tomko)
- storage: move buffer allocation inside virStorageBackendWipeExtentLocal (Ján Tomko)
- storage: fix return values of virStorageBackendWipeExtentLocal (Ján Tomko)
- qemu: Replace Mlock with MemLock in function names (Andrea Bolognani)
- qemu: Allow qemuDomainAdjustMaxMemLock() to restore previous value (Andrea Bolognani)
- qemu: Reduce memlock limit after detaching PCI hostdev (Andrea Bolognani)
- qemu: Use qemuDomainAdjustMaxMemLock() (Andrea Bolognani)
- qemu: Add qemuDomainAdjustMaxMemLock() (Andrea Bolognani)
- process: Add virProcessGetMaxMemLock() (Andrea Bolognani)
- process: Allow virProcessPrLimit() to get current limit (Andrea Bolognani)
- qemu: Search all nodes for shared memory access (Martin Kletzander)
- pci: Use virPCIDeviceAddress in virPCIDevice (Andrea Bolognani)
- libxl: Use libxentoollog in preference to libxenctrl if available. (Ian Campbell)
- libxl: implement virDomainGetJobStats (Joao Martins)
- libxl: implement virDomainGetJobInfo (Joao Martins)
- storage: Add helper to compare logical pool def against pvs output (John Ferlan)
- storage: Create helper for virStorageBackendLogicalFindPoolSources (John Ferlan)
- storage: Refactor virStorageBackendFileSystemGetPoolSource (John Ferlan)
- storage: Create helper to generate FS pool source value (John Ferlan)
- qemu: add bootindex option to hostdev network interface commandline (Laine Stump)
- security_stack: remove extra Security from function names (Ján Tomko)
- security_selinux: remove extra Security from function names (Ján Tomko)
- security_dac: remove extra Security from function names (Ján Tomko)
- qemuMonitorJSONEjectMedia: don't stringify the replay at all (Pavel Hrdina)
- pci: Use 'addr' instead of 'dev' for virPCIDeviceAddressPtr (Andrea Bolognani)
- qemu cgroups: move new threads to new cgroup after cpuset is set up (Henning Schild)
- qemu: do not put a task into machine cgroup (Henning Schild)
- util: cgroups do not implicitly add task to new machine cgroup (Henning Schild)
- util: Fixup virnetdevmacvlan.h ATTRIBUTE_NONNULL's (John Ferlan)
- test: qemuxml2argv: Mock virMemoryMaxValue to remove 32/64 bit difference (Peter Krempa)
- qemu: Enable multiqueue for macvtaps (Michal Privoznik)
- virNetDevMacVLanCreateWithVPortProfile: Rework to support multiple FDs (Michal Privoznik)
- virNetDevMacVLanTapSetup: Allow enabling of IFF_MULTI_QUEUE (Michal Privoznik)
- virNetDevMacVLanTapSetup: Rework to support multiple FDs (Michal Privoznik)
- virNetDevMacVLanTapOpen: Rework to support multiple FDs (Michal Privoznik)
- virNetDevMacVLanTapOpen: Slightly rework (Michal Privoznik)
- virNetDevMacVLanCreateWithVPortProfile: Turn vnet_hdr into flag (Michal Privoznik)
- log: include hostname in initial log message (Daniel P. Berrange)
- storage: Add debug message (John Ferlan)
- storage: Handle readflags errors (John Ferlan)
- storage: Add readflags for backend error processing (John Ferlan)
- tests: scsihost: Use fakerootdir instead of fakesysfsdir (Andrea Bolognani)
- tests: Use more specific names for variables (Andrea Bolognani)
- tests: Rename LIBVIRT_FAKE_SYSFS_DIR to LIBVIRT_FAKE_ROOT_DIR (Andrea Bolognani)
- tests: cgroupmock: Use the temporary directory as fake root (Andrea Bolognani)
- tests: pcimock: Use the temporary directory as fake root (Andrea Bolognani)
- tests: pcimock: Remove check for fakesysfsdir (Andrea Bolognani)
- tests: scsihost: Don't set LIBVIRT_FAKE_SYSFS_DIR (Andrea Bolognani)
- qemu: driver: Refactor qemuDomainHelperGetVcpus (Peter Krempa)
- qemu: Add helper to retrieve vCPU pid (Peter Krempa)
- qemu: Replace checking for vcpu<->pid mapping availability with a helper (Peter Krempa)
- qemu: Drop checking vcpu threads in emulator bandwidth getter/setter (Peter Krempa)
- qemu: cgroup: Remove now unreachable check (Peter Krempa)
- conf: Add helper to get pointer to a certain vCPU definition (Peter Krempa)
- conf: ABI: Split up and improve vcpu info ABI checking (Peter Krempa)
- conf: turn def->vcpus into a structure (Peter Krempa)
- qemu: refactor qemuDomainHotunplugVcpus (Peter Krempa)
- qemu: Refactor qemuDomainHotplugVcpus (Peter Krempa)
- qemu: cpu hotplug: Move loops to qemuDomainSetVcpusFlags (Peter Krempa)
- qemu: monitor: Remove weird return values from qemuMonitorSetCPU (Peter Krempa)
- qemu: Split up vCPU hotplug and hotunplug (Peter Krempa)
- qemu: Extract vCPU onlining/offlining via agent into a separate function (Peter Krempa)
- qemu: domain: Add helper to access vm->privateData->agent (Peter Krempa)
- conf: Turn def->maxvcpus into size_t (Peter Krempa)
- conf: Replace read accesses to def->vcpus with accessor (Peter Krempa)
- conf: Move vcpu count check into helper (Peter Krempa)
- conf: Replace writes to def->vcpus with accessor (Peter Krempa)
- conf: Replace read access to def->maxvcpus with accessor (Peter Krempa)
- conf: Add helper to check whether domain has offline vCPUs (Peter Krempa)
- conf: Extract update of vcpu count if maxvcpus is decreased (Peter Krempa)
- conf: Use local copy of maxvcpus in virDomainVcpuParse (Peter Krempa)
- conf: Replace writes to def->maxvcpus with accessor (Peter Krempa)
- xen: use virDomainDefPostParse for parsing XM/XL/SEXPR cofings (Pavel Hrdina)
- lxc: use virDomainDefPostParse for parsing LXC config string (Pavel Hrdina)
- vmware/vmx: use virDomainDefPostParse after parsing vmx config (Pavel Hrdina)
- virsh: rename vshCommandOptString to vshCommandOptStringQuiet (Ján Tomko)
- security_selinux: fix indentation (Ján Tomko)
- security_dac: check if virSecurityDACGetIds returns negative (Ján Tomko)

  Thanks everybody for helping with this release, be it with bug reports
patches, reviews, documentation and ideas !

    Enjoy !

Daniel

-- 
Daniel Veillard      | Open Source and Standards, Red Hat
veillard@xxxxxxxxxx  | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | virtualization library  http://libvirt.org/

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]