Desktop software in pkgsrc. Kamil Rytarowski

Similar documents
Lesson 7 Software Fundamentals

WebKit GTK on (electronic) paper. Marco Barisione linux.conf.au 2009, Hobart

pkgsrc for users and developers

Let s Review Lesson 2!

Chapter 2 Operating-System Structures

Chapter 2. Operating-System Structures

Computer Software A computer contains two major sets of tools, software and hardware. Software is generally divided into Systems software and

The role of free software in education. An introduction to GNU/Linux

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

Chapter 2: System Structures

Lecture 2 Operating System Structures (chapter 2)

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.

Introduction to creating 3D UI with BeagleBoard. ESC-341 Presented by Diego Dompe

Accounting Software. Collaboration Software

NSIGHT ECLIPSE EDITION

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

T Multimedia Programming. Different Operating Systems and their Multimedia Support

About the Presentations

Chapter Objectives 1 of 2. Chapter 3. The Operating System. Chapter Objectives 2 of 2. The Operating System. The Operating System

Unit 11 Computer Network Introduction to Network Operating Systems

NSIGHT ECLIPSE EDITION

Presentation to the Linux Supporters Group Adelaide. on Wednesday 6/5/2009 by Hayden Tremethick.

Chapter 2: System Structures. Operating System Concepts 9 th Edition

Chapter 3 Application Software

CS 300 Data Structures

UI, Graphics & EFL. Carsten Haitzler Principal Engineer Samsung Electronics Korea Founder/Leader Enlightenment / EFL

Common Linux and Ubuntu symbols. Tux the Penguin Tux is the popular Penguin icon for Linux.

NSIGHT ECLIPSE EDITION

Chapter 2: Operating-System Structures

Flatpak workshop. flatpak.org

Moblin v2 SDK. Open Source Technology Center Presented by Bob Spencer

Chapter 2 Software Components

Chapter 2: Operating-System Structures

Android App Development

Qt + Maemo development

CS200-Chapter3-Homework

Linux Utilities Cookbook

How To Manually Install Software In Linux Mint 14 Cinnamon Edition

The Past, Present, and Future of SWT

Chapter 2: System Structures. Operating System Concepts 9 th Edition

CS 4300 Computer Graphics

ATV520 User Manual V1.1

Chapter 2: Operating-System Structures. Chapter 2: Operating-System Structures. Objectives. Operating System Services

Miguel de Icaza A Genius Free Software Evangelist. Cristhian Figueroa PhD Student Ingegneria Informatica e dei Sistemi Politecnico di Torino 2013

INTERNATIONALIZATION IN GVIM

Getting Started with Linux Development

COMPUTER SOFTWARE RAYMOND ROSE

GNU/Linux Course Lesson 1. Puria Nafisi

It s a Unix(-like) System? An Introduction to TrueOS and Open Source Software. Copyright ixsystems, Inc. 2017

The Slide does not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams.

Chapter 3. Application Software

Discovering Computers Living in a Digital World

Background Information About GTK+ and Related Libraries

Module 4: Basics of Software

Update on the open source browser space

Chapter 2: Operating-System Structures

Chapter 8 Operating Systems and Utility Programs

Linux Operating System

Technology in Action

pkgsrc on MirBSD Benny Siegert FOSDEM 2012

Computers Are Your Future Prentice-Hall, Inc.

Aurora Documentation. Release Luis Felipe López Acevedo, aka sirgazil

Announcements. This week is about your term project. Meet in person, more than once. Paper prototype

Operating Systems. Operating Systems

CS420: Operating Systems. OS Services & System Calls

Building a Browser for Automotive: Alternatives, Challenges and Recommendations

Flatpak. Apps on the Linux desktop. Alexander Larsson Red Hat

Computer Concepts Module 3. Computer Software

Chapter 5. System Software. McGraw-Hill/Irwin. Copyright 2008 by The McGraw-Hill Companies, Inc. All rights reserved.

CS370 Operating Systems

IT-G400 Series. Android 6.0 Quick Start Guide. This document is a Development Guide Book for IT-G400 application developers. Ver 1.

Embedded Linux development made easier. User s manual. Version:

SISTEM OPERASI PELAYAN (SERVER) SKS 3104 SISTEM OPERASI RANGKAIAN SIJIL SISTEM KOMPUTER & SOKONGAN KOLEJ KOMUNITI PAYA BESAR

Objectives. Chapter 2: Operating-System Structures. 2.1 Operating System Services

Linux. What is it? What s good about it? What s bad about it?

Userful MultiSeat Toolkit

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures. Operating System Concepts Essentials 8 th Edition

Operating-System Structures

Level 1/2 Award in INFORMATION TECHNOLOGY Unit 2 Creating IT systems Internal Assessment

Operating System Services

X11, X12, What next. And its companion: the ROOT GUI

Using Microsoft Visual Studio to Create a Graphical User Interface

OPERATING SYSTEMS & UTILITY PROGRAMS

Chapter 2: Operating-System

EXCELLENT ACADEMY OF ENGINEERING. Telephone: /

University co-operation with Maemo SW FRUCT seminar Tampere Nokia V1-Filename.ppt / YYYY-MM-DD / Initials

Ubuntu Operating System and Flavours

Operating System: Chap2 OS Structure. National Tsing-Hua University 2016, Fall Semester

About Parallels Desktop 14 for Mac

AppleWorks 5 Installation Manual. Includes information about new features FOR MAC OS

Technology in Action. Chapter Topics (cont.) Chapter Topics. Participation Question. Participation Question 7/17/11

ComTrader 2.7 Setup Guide. Version 1.2

Mobile Computing. Juha-Matti Liukkonen, Nov 17, 2010

Regardless of the size and complexity of the computer and the operating system, all operating systems perform the same four basic functions:

Flatpak and your distribution. Simon McVittie

Chap2: Operating-System Structures

Install and Configure wxwidgets on Ubuntu

Transcription:

Desktop software in pkgsrc Kamil Rytarowski kamil@netbsd.org

whoami(1) Long time GNU/Linux user (since 90ties) NetBSD user since 6.1 NetBSD developer since 2015 pkgsrc contributor Logo of the NetBSD Operating System by Grant Bisset

Desktop metaphor An interface metaphor used in computing, which treats monitor as a real desktop and maps items on a real desktop with graphical objects represented on a monitor. CC BY-SA 3.0 https://en.wikipedia.org/wiki/file:writing_desk.jpg

Desktop metaphor An interface metaphor used in computing, which treats monitor as a real desktop and maps items on a real desktop with graphical objects represented on a monitor. Computer Environment Real-world desk Application Window Paper copy Utility applications (calculator, calendar etc) Desk accessories Documents and folders Documents and folders CC BY-SA 3.0 https://en.wikipedia.org/wiki/file:writing_desk.jpg

Desktop metaphor Mac OS (1984) Users operate with their computers with graphical metaphors rather than textual commands. Unknown license https://en.wikipedia.org/wiki/file:apple_macintosh_desktop.png

Desktop metaphor An interface metaphor used in computing, which treats monitor as a real desktop and maps items on a real desktop with graphical objects represented on a monitor. Computer specific desktop items: menu bars, task bars, docks etc. CC BY-SA 3.0 https://en.wikipedia.org/wiki/file:writing_desk.jpg

Desktop environment evolution From WIMP (windows, icons, menus and pointer) [Xerox - 1974] to BumpTop [Google - 2012]. Public Domain https://en.wikipedia.org/wiki/file:xerox_alto_mit_rechner.jpg Animated wallpaper from http://bumptop.github.io/

Basic computer types headless small Desktop Server Embedded (including mobile, IoT etc) CC BY-SA 3.0, CC BY-SA 2.5, CC BY-SA 2.0, CC BY-SA 1.0 https://en.wikipedia.org/wiki/file:acer_aspire_8920_gemstone.jpg

Types of desktop programs Application - a computer program designed to help people perform an activity, System utility - performs maintenance or general-purpose chores, Programming Tool - creates programs. CC0 1.0 https://en.wikipedia.org/wiki/file:hello_world_c.svg

Application software Office software - accounting, data management (contacts, spreadsheet, database), documents (word processor, publishing software, presentation software, E-mail), resource and project planning, financial software,... Entertainment software - screen savers, video games,... Education software Multimedia software - 3D graphics, animation, images, video, audio, html,... Simulation software - scientific, entertaining and educational,... CC0 1.0 https://en.wikipedia.org/wiki/file:hello_world_c.svg

System utilities Security - Anti-virus, cryptographic,... Archivers - backup, data compression, data synchronization,... Disk management - defragmentation, checkers, space analyzers,... System monitors - profilers, process management,... Network tools - connectivity analysis, Wi-Fi,... CC0 1.0 https://en.wikipedia.org/wiki/file:hello_world_c.svg

Programming tools Compilers Debuggers Profilers GUI designers - RAD tools Integrated Development Environment Development automation - building, release, testing CC0 1.0 https://en.wikipedia.org/wiki/file:hello_world_c.svg

pkgsrc Pkgsrc as a package manager is a utility (system management) software. pkgin - high-level package manager pkg_add - install and upgrade software pkg_info - display information on software packages pkg_delete - delete already installed software packages...

pkgsrc Creating and maintaining packages requires development tools. url2pkg - automatic package generator pkgdiff - package patch management pkgvi - edit a given source-code file with $EDITOR mkpatches - generate patch files for a package from edited source-code pkglint - static validator of a package createbuildlink - generator of buildlink3.mk...

pkgsrc groups archivers 118 audio 508 benchmarks 48 biology 40 cad 73 chat 151 comms 85 converters 129 cross 48 databases 475 devel 2235 editors 170 emulators 359 filesystems 44 finance 52 fonts 813 games 383 geography 75 graphics 724 ham 54 inputmethod 134 lang 249 mail 365 math 299 mbone 14 meta-pkgs 109 misc 366 multimedia 215 net 855 news 23 parallel 21 pkgtools 71 print 1259 regress 17 security 515 shells 32 sysutils 676 textproc 919 time 180 wm 102 www 860 x11 793 wip 4350 Total 19008

pkgsrc desktops There are two main types of graphical desktops: Window Managers - manages windows on a screen dwm pekwm ctwm... Desktop Environments - WM + set of dedicated applications and utilities kde3, kde4 gnome (2.x) mate xfce...

Gnome (GNU Network Object Model Environment) Desktop environment that is composed of free software. Currently part of the GNU Project. CC BY-SA 4.0 https://en.wikipedia.org/wiki/file:gnome-3.18.2-showing-overview.png

Gnome (GNU Network Object Model Environment) The GNOME desktop is composed out of 300 home-grown packages. Some of them and promoted solutions: GLib, GObject, GTK+ - data structures, objects, type system, widget toolkit WebKit - layout engine software component for rendering web pages D-Bus - IPC framework Cairo - 2d vector-based drawing library Pango - international text rendering library PulseAudio - low-level audio API Clutter - accelerated graphics Telepathy - instant messaging

Gnome (GNU Network Object Model Environment) Common portability problems: Embedded calling Linux-specific commands or standard commands with Linux-specific options - for example useradd(8) userdel(8) in accountsservice udev dependency - device manager for the Linux kernel inotify - Linux kernel subsystem to notice changes to filesystems GNU specific and unportable libc calls - e.g. fgetpwent() epoll - Linux kernel scalable I/O event notification mechanism Linux specific procfs dependencies

Gnome (GNU Network Object Model Environment) Common portability problems & usual solutions: Embedded calling Linux-specific commands or standard commands with Linux-specific options for example useradd(8) userdel(8) in accountsservice Patch the source-code for portable or specific for other OSes command calls udev dependency - device manager for the Linux kernel Sometimes rewrite the code for libusb support inotify - Linux kernel subsystem to notice changes to filesystems Rewrite the code for kqueue(2) or use libinotify GNU specific and unportable libc calls - e.g. fgetpwent() If possible use alternatives or reimplement functionality epoll - Linux kernel scalable I/O event notification mechanism Rewrite the code for kqueue(2) Linux specific procfs dependencies Reimplement needed functionality with sysctl(7) or fallback to Linux-compat procfs

Gnome (GNU Network Object Model Environment) Common maintenance issues: hundreds of packages to keep up to date maintain relations between libraries and their dependencies often need to cooperate with upstream to get aligned with the recent libraries need for keep multiple versions of dependencies major manpower issues notably multiple instances of WebKitGTK (GTK2, GTK3; version 2.4 API, version 3.0 API) frequent revolutions of low-level libraries hal udev policykit polkit systemd?

Gnome (GNU Network Object Model Environment) Current status of GNOME in pkgsrc (as of 2016Q2): Gnome 2.x - in pkgsrc Partial set of Gnome3 packages in pkgsrc and pkgsrc-wip MATE (Gnome 2.x successor) imported into pkgsrc Cinnamon - not started, blocked by the lack of Gnome3 core dependencies Unity (Ubuntu) - not started, at the moment not planned

Other desktop environments The current status of other major desktop environments: KDE - similar story to GNOME KDE3, KDE4 in pkgsrc KF5 imported into pkgsrc plasma5 still in development in pkgsrc-wip TDE/Trinity (KDE3 successor) - not started XFCE4 - actively maintained and supported on several platforms LXDE - lately imported into pkgsrc LXQt - partial support in pkgsrc-wip Lumina - initial package in pkgsrc-wip...

Benefits of first-class support of major DEs Match users needs Easier deployment of user-friendly setup into end-user environment Validation of completeness of standard (POSIX) interfaces Verification of correctness of kernel and base system libraries and tools Reduced porting effort of 3rd party software to NetBSD and other OSes

Benefits of first-class support of major DEs Match users needs Easier deployment of user-friendly setup into end-user environment Validation of completeness of standard (POSIX) interfaces Verification of correctness of kernel and base system libraries and tools Reduced porting effort of 3rd party software to NetBSD and other OSes THANKS