mgar Producing complex packages for Solaris the easy way OpenCSW Technical Wintercamp Dublin 2011 Dagobert Michelsen

Size: px
Start display at page:

Download "mgar Producing complex packages for Solaris the easy way OpenCSW Technical Wintercamp Dublin 2011 Dagobert Michelsen"

Transcription

1 mgar Producing complex packages for Solaris the easy way OpenCSW Technical Wintercamp Dublin 2011 Dagobert Michelsen 1

2 Once upon a time find /usr/local/pkg -print > /tmp/files cat /tmp/files pkgproto > /tmp/prototype vim /tmp/prototype PKG=FOOtree NAME=tree - A recursive directory listing program ARCH=sparc VERSION=1.5.3,REV= CATEGORY=application VENDOR= =joe@example.com PSTAMP=joe@darkstar CLASSES=none HOTLINE= pkgmk -o -r / -d /tmp -f Prototype pkgtrans. tree.pkg FOOtree gzip tree.pkg 2

3 What is missing? What s wrong? Compilation Packaging standards Checking for errors Hardcoded prototypes Hardcoded pkginfo 3

4 Enter mgar gmake package 4

5 What is mgar? A system to build packages for Solaris Origins are GAR LNX-BBC and GARNOME m = modulated multiple similar builds Files written in GNU Make 5 5

6 The simplest case The minimal information to build a package: 1. What should the package be named 2. Where to get the sources 3. What the dependencies are 6

7 Example: gperf NAME = gperf VERSION = CATEGORIES = devel DESCRIPTION = A perfect hash function generator MASTER_SITES = $(GNU_MIRROR) DISTFILES = $(NAME)-$(VERSION).tar.gz CONFIGURE_ARGS = $(DIRPATHS) TEST_TARGET = check include gar/category.mk 7

8 Categories include gar/category.mk Should be really named 'profiles' Contains settings common to a class of builds Generic Perl Modules Ruby Gems Python Eggs 8

9 Typical customization needs Code needs to be patched to compile or run on Solaris Code doesn t honor information passed via./configure Files need to placed at specific locations in the package 9

10 Phases prerequisites fetch checksum exract patch configure build test install merge package checkpkg...and custom targets: pre-fetch post-fetch pre-extract (...) 10

11 Modulations A Modulation is the process of varying one waveform in relation to another waveform For software builds that means: A Modulation is the process of varying a build in relation to certain parameters 11

12 Phases and modulations Prerequisites Fetch Checksum Extract Patch Configure Build Te s t Install Merge Package One modulation Executed globally Executed inside modulation Executed globally 12

13 What can be used as modulator? ISA for build architecture For 32/64 bit versions and optimized binaries. See lame Package version Useful when multiple versions of a library should be included See automake...anything that controls the build Static vs. dynamic linked versions See wget Parameter size See nrpe Wide vs. narrow characters See ncurses 13

14 Modulation over ISA Allows easy building of multiple ISAs Built-in special case of modulation No merge needed also Simplest case BUILD64 = 1 Advance d EXTRA_BUILD_ISAS = sparcv8plus+vis pentium_pro 14

15 Modulation over ISA requirements Certain ISAs require specific platforms x64 requires Solaris 10, but integrated package for Solaris 8-10 Parallelizing modulation builds May require builds on multiple hosts Build platform for each modulation can be specified in the package manifest How does ISAEXEC relate to multi-isa? 15

16 Modulation over static/dynamic linking Adds modulator with GARNAME = wget this name... EXTRA_MODULATORS = STATIC MODULATIONS_STATIC = disable enable Cool trick: Use dynamically expanded variables to set per-modulation EXTRA_CONFIGURE_STATIC-disable = --with-ssl EXTRA_CONFIGURE_STATIC-enable = --disable-shared EXTRA_CONFIGURE_STATIC-enable += --enable-static EXTRA_CONFIGURE_STATIC-enable += --without-ssl... CONFIGURE_ARGS += $(EXTRA_CONFIGURE_STATIC-$(STATIC)) MERGE_SCRIPTS_isa-sparcv8-static-disable = copy-all MERGE_SCRIPTS_isa-sparcv8-static-enable = rename-wget copy-only MERGE_DIRS_isa-sparcv8-static-enable = $(bindir) MERGE_SCRIPTS_isa-i386-static-disable = copy-all MERGE_SCRIPTS_isa-i386-static-enable = rename-wget copy-only MERGE_DIRS_isa-i386-static-enable = $(bindir) $(DESTDIR)$(bindir)/wget $(DESTDIR)$(bindir)/wget.static... include gar/category.mk 16

17 Modulation over parameter size GARNAME = nrpe... EXTRA_MODULATORS = SIZE MODULATIONS_SIZE = 1k 8k... Ok, I guess you understood how this works PATCHFILES_isa-sparcv8-size-8k = common.h.diff PATCHFILES_isa-i386-size-8k = common.h.diff... MERGE_SCRIPTS_isa-sparcv8-size-1k = copy-all MERGE_SCRIPTS_isa-sparcv8-size-8k = copy-nrpe-only Use patchfiles on a per-modulation basis MERGE_SCRIPTS_isa-i386-size-1k = copy-all MERGE_SCRIPTS_isa-i386-size-8k = copy-nrpe-only include gar/category.mk... merge-copy-nrpe-only: cp $(INSTALLISADIR)$(bindir)/nrpe_1k $(PKGROOT)$(bindir)/nrpe_8k cp $(INSTALLISADIR)$(LIBEXECDIR)/check_nrpe 17

18 Modulations and their names The name of a modulation is <modulator1>-<value1>-<modulator2>-<value2>-... Call each phase from a modulation manually with Example: <phase>-<modulation> gmake build-isa-sparcv8 This results in a sub-make-invocation Example: <phase>-modulated MODULATION=<MODULATION> <MODULATOR1>=<value1>... gmake build-modulated MODULATION=isa-sparcv8 ISA=sparcv8 18

19 Merging Why is this needed? Optimized binaries with isaexec Libraries may be located elsewhere in the package than they were configured /lib/32 ->. /lib/64 -> sparcv9 amd64 Pathes stored in pkgconfig-files 19

20 Merging Why is this needed? 32 and 64 bit need different install locations to have sane pkgconfig-files Install build-isa-sparcv8/opt/csw/bin/myapp build-isa-sparcv9/opt/csw/bin/64/myapp Merge pkgroot/opt/csw/bin/myapp pkgroot/opt/csw/bin/sparcv9/myapp Package /opt/csw/bin/myapp -> isaexec /opt/csw/bin/sparcv8/myapp /opt/csw/bin/sparcv9/myapp 20

21 Merging Builtin rules Copy all Copy only some MERGE_DIRS_<mod> Do not relocate copy-all copy-only Do relocate copy-relocate copy-relocated-only 21

22 Merging with custom rules Only merge specific files GARNAME = nrpe... MERGE_SCRIPTS_isa-sparcv8-size-1k = copy-all MERGE_SCRIPTS_isa-sparcv8-size-8k = copy-nrpe-only MERGE_SCRIPTS_isa-i386-size-1k = copy-all MERGE_SCRIPTS_isa-i386-size-8k = copy-nrpe-only include gar/category.mk... merge-copy-nrpe-only: This is the default build Just copy everything over We want to control exactly what is used from the additional modulation Merging copies from the install location to PKGROOT cp $(INSTALLISADIR)$(bindir)/nrpe_1k $(PKGROOT)$(bindir)/nrpe_8k cp $(INSTALLISADIR)$(LIBEXECDIR)/check_nrpe 22

23 Class Action Scripts They mean more or less 'hooks' f cswinitsmf /opt/csw/etc/init.d/cswpuppetd i.<class> scripts handle the files i.cswinitsmf r.cswinitsmf GAR integration: INITSMF = $(prefix)/init\.d/cswpuppetd Fully automated: Texinfo registration Configuration file preservation Placement of README.CSW in package docs... 23

24 checkpkg and overrides Examines a set of.pkg files Looks for common issues Written mostly in Python, with lintian in mind allows to override checks 24

25 Your package is ready! 25

26 Questions? Bueller? Anybody? 26

A Makefile. The Makefile contains various statements that specify how the application should be compiled and where it should be installed on your

A Makefile. The Makefile contains various statements that specify how the application should be compiled and where it should be installed on your What is a port The Ports Collection is essentially a set of Makefiles, patches, and description files placed in /usr/ports. The port includes instructions on how to build source code, but does not include

More information

Packaging Tools for OpenServer & UnixWare. Ron Record John Wolfe

Packaging Tools for OpenServer & UnixWare. Ron Record John Wolfe Packaging Tools for OpenServer & UnixWare Ron Record John Wolfe rr@sco.com jlw@sco.com 1 Why Package? Single software administration tool Ease of installation, update, and removal Support for multiply

More information

Dynamically-typed Languages. David Miller

Dynamically-typed Languages. David Miller Dynamically-typed Languages David Miller Dynamically-typed Language Everything is a value No type declarations Examples of dynamically-typed languages APL, Io, JavaScript, Lisp, Lua, Objective-C, Perl,

More information

When talking about how to launch commands and other things that is to be typed into the terminal, the following syntax is used:

When talking about how to launch commands and other things that is to be typed into the terminal, the following syntax is used: Linux Tutorial How to read the examples When talking about how to launch commands and other things that is to be typed into the terminal, the following syntax is used: $ application file.txt

More information

Reproducible packaging and distribution of software with GNU Guix

Reproducible packaging and distribution of software with GNU Guix Reproducible packaging and distribution of software with GNU Guix Distributing software with Guix Pjotr Prins FOSDEM February 5th, 2017 UMC Utrecht/UTHSC GeneNetwork.org Reproducible packaging and distribution

More information

GNU Source Release Collection

GNU Source Release Collection GNU Source Release Collection for version 2014.10.11, 6 January 2014 bug-gsrc@gnu.org This manual is for the GNU Source Release Collection (version 2014.10.11, updated 6 January 2014). Copyright c 2011,

More information

February 2 nd Jean Parpaillon

February 2 nd Jean Parpaillon Using GIT with Kerrighed project Kerrighed Summit '07 February 2 nd 2007 Jean Parpaillon Table of contents Kerrighed SCM Subversion GIT GIT with Kerrighed References 2 Kerrighed

More information

The WebGUI Runtime Environment. Roy Johnson Plain Black Corporation

The WebGUI Runtime Environment. Roy Johnson Plain Black Corporation The WebGUI Runtime Environment Roy Johnson Plain Black Corporation What is the WRE? All the supporting software required to host WebGUI Apache 2 / Mod_Perl 2 MySQL 5 Supporting Perl Modules AWStats Utilities

More information

fpm-cookery Documentation

fpm-cookery Documentation fpm-cookery Documentation Release 0.33.0 Bernd Ahlers Jun 10, 2018 Contents 1 Features 3 2 Documentation Contents 5 2.1 Getting Started.............................................. 5 2.2 Using Hiera................................................

More information

The build2 Toolchain Installation and Upgrade

The build2 Toolchain Installation and Upgrade The build2 Toolchain Installation and Upgrade Copyright 2014-2019 Code Synthesis Ltd Permission is granted to copy, distribute and/or modify this document under the terms of the MIT License This revision

More information

Scripting Languages Course 1. Diana Trandabăț

Scripting Languages Course 1. Diana Trandabăț Scripting Languages Course 1 Diana Trandabăț Master in Computational Linguistics - 1 st year 2017-2018 Today s lecture Introduction to scripting languages What is a script? What is a scripting language

More information

The Package Man Always Builds Twice -- From SysV Packaging To The Image Packaging System

The Package Man Always Builds Twice -- From SysV Packaging To The Image Packaging System From SysV Packages to the IPS Welcome The Package Man Always Builds Twice -- From SysV Packaging To The Image Packaging System Volker A. Brandt Brandt & Brandt Computer GmbH vab@bb-c.de From SysV Packages

More information

QUESTION 1 Tools used: pdf-parser, pdfid, pdftk, oledump

QUESTION 1 Tools used: pdf-parser, pdfid, pdftk, oledump TOPIC QUESTION Visit the following link and analyze the pdf file along with the doc file without executing them. You will need to find relevant tools and commands for analyzing a doc file https://blog.didierstevens.com/2015/08/28/test-file-pdf-with-embedded-doc-dropping-eicar/

More information

Unix/Linux Operating System. Introduction to Computational Statistics STAT 598G, Fall 2011

Unix/Linux Operating System. Introduction to Computational Statistics STAT 598G, Fall 2011 Unix/Linux Operating System Introduction to Computational Statistics STAT 598G, Fall 2011 Sergey Kirshner Department of Statistics, Purdue University September 7, 2011 Sergey Kirshner (Purdue University)

More information

Using CVS to Manage Source RTL

Using CVS to Manage Source RTL Using CVS to Manage Source RTL 6.375 Tutorial 2 February 1, 2008 In this tutorial you will gain experience using the Concurrent Versions System (CVS) to manage your source RTL. You will be using CVS to

More information

pkgsrc for users and developers

pkgsrc for users and developers pkgsrc for users and developers Guillaume Lasmayous gls@netbsd.org FOSDEM Brussels, Feb. 5 2012 WTF is pkgsrc? aka package source NetBSD packaging system for 3rd party applications Initially based on FreeBSD

More information

Here s another makefile snippet that works some of the time:

Here s another makefile snippet that works some of the time: Silent Failure Here s another makefile snippet that works some of the time: clean: @-rm *.o &> /dev/null The @ means that the command isn t echoed. The - means that any error returned is ignored and all

More information

Week - 04 Lecture - 01 Merge Sort. (Refer Slide Time: 00:02)

Week - 04 Lecture - 01 Merge Sort. (Refer Slide Time: 00:02) Programming, Data Structures and Algorithms in Python Prof. Madhavan Mukund Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 04 Lecture - 01 Merge Sort (Refer

More information

Why OpenEmbedded proved a good foundation for MontaVista. Cedric Hombourger Solutions & Services Architect

Why OpenEmbedded proved a good foundation for MontaVista. Cedric Hombourger Solutions & Services Architect Why OpenEmbedded proved a good foundation for MontaVista Cedric Hombourger Solutions & Services Architect Moving away from RPM! Shortly after is 10th birthday, MontaVista unleashed MVL6: a complete revamp!

More information

LIS Linux/Unix Command Line Goodness

LIS Linux/Unix Command Line Goodness LIS-3353 Linux/Unix Command Line Goodness Which is primitive? Why the text interface? Because you can very quickly say/relate complex concepts in a concise way, by combining a series of simple symbols.

More information

Package Managers. What are they and why we use them

Package Managers. What are they and why we use them Package Managers What are they and why we use them Thoughts of an admin Installing software is painful Installing a lot of software is extremely painful Installing a lot of software on a lot of machines

More information

Red Hat Enterprise Linux 7 RPM Packaging Guide

Red Hat Enterprise Linux 7 RPM Packaging Guide Red Hat Enterprise Linux 7 RPM Packaging Guide Basic and Advanced RPM Packaging Maxim Svistunov Red Hat Marie Doleželová Red Hat Adam Miller Red Hat Red Hat Enterprise Linux 7 RPM Packaging Guide Basic

More information

Git. all meaningful operations can be expressed in terms of the rebase command. -Linus Torvalds, 2015

Git. all meaningful operations can be expressed in terms of the rebase command. -Linus Torvalds, 2015 Git all meaningful operations can be expressed in terms of the rebase command -Linus Torvalds, 2015 a talk by alum Ross Schlaikjer for the GNU/Linux Users Group Sound familiar? add commit diff init clone

More information

Common Configuration Management Tasks: How to Do Them with Subversion

Common Configuration Management Tasks: How to Do Them with Subversion Common Configuration Management Tasks: How to Do Them with Subversion Tom Verhoeff October 2007 Contents 1 The Big Picture 2 2 Subversion Help 2 3 Create New Empty Repository 2 4 Obtain Access to Repository

More information

CSE 303 Lecture 2. Introduction to bash shell. read Linux Pocket Guide pp , 58-59, 60, 65-70, 71-72, 77-80

CSE 303 Lecture 2. Introduction to bash shell. read Linux Pocket Guide pp , 58-59, 60, 65-70, 71-72, 77-80 CSE 303 Lecture 2 Introduction to bash shell read Linux Pocket Guide pp. 37-46, 58-59, 60, 65-70, 71-72, 77-80 slides created by Marty Stepp http://www.cs.washington.edu/303/ 1 Unix file system structure

More information

Chapter-3. Introduction to Unix: Fundamental Commands

Chapter-3. Introduction to Unix: Fundamental Commands Chapter-3 Introduction to Unix: Fundamental Commands What You Will Learn The fundamental commands of the Unix operating system. Everything told for Unix here is applicable to the Linux operating system

More information

pkgsrc on SmartOS Jonathan Perkin Software Engineer Saturday, 23 March 13

pkgsrc on SmartOS Jonathan Perkin Software Engineer  Saturday, 23 March 13 pkgsrc on SmartOS Jonathan Perkin Software Engineer Joyent @jperkin jperkin@joyent.com jperkin@pkgsrc.org Agenda Introduction History and background to SmartOS pkgsrc usage in SmartOS pkgsrc features we

More information

Unix/Linux Basics. Cpt S 223, Fall 2007 Copyright: Washington State University

Unix/Linux Basics. Cpt S 223, Fall 2007 Copyright: Washington State University Unix/Linux Basics 1 Some basics to remember Everything is case sensitive Eg., you can have two different files of the same name but different case in the same folder Console-driven (same as terminal )

More information

Akamai Connector for Varnish Installation Guide

Akamai Connector for Varnish Installation Guide Akamai Connector for Varnish Installation Guide Table of Contents 1 Introduction 3 2 Installation 4 2.1 Overview 4 2.2 Varnish Plus Installation 4 2.2.1 Ubuntu Installation 4 2.2.2 Redhat Enterprise Linux

More information

Introduction to Unix: Fundamental Commands

Introduction to Unix: Fundamental Commands Introduction to Unix: Fundamental Commands Ricky Patterson UVA Library Based on slides from Turgut Yilmaz Istanbul Teknik University 1 What We Will Learn The fundamental commands of the Unix operating

More information

Introduction of Linux

Introduction of Linux Introduction of Linux 阳 oslab2018_class1@163.com 寅 oslab2018_class2@163.com PART I Brief Introduction Basic Conceptions & Environment Install & Configure a Virtual Machine Basic Commands PART II Shell

More information

INTRODUCTION TO LINUX

INTRODUCTION TO LINUX INTRODUCTION TO LINUX REALLY SHORT HISTORY Before GNU/Linux there were DOS, MAC and UNIX. All systems were proprietary. The GNU project started in the early 80s by Richard Stallman Goal to make a free

More information

Introduction to Computing Systems - Scientific Computing's Perspective. Le Yan LSU

Introduction to Computing Systems - Scientific Computing's Perspective. Le Yan LSU Introduction to Computing Systems - Scientific Computing's Perspective Le Yan HPC @ LSU 5/28/2017 LONI Scientific Computing Boot Camp 2018 Why We Are Here For researchers, understand how your instrument

More information

CS354 gdb Tutorial Written by Chris Feilbach

CS354 gdb Tutorial Written by Chris Feilbach CS354 gdb Tutorial Written by Chris Feilbach Purpose This tutorial aims to show you the basics of using gdb to debug C programs. gdb is the GNU debugger, and is provided on systems that

More information

Computer Programming II Python

Computer Programming II Python EXAM INFORMATION Items 32 Points 33 Prerequisites SECONDARY MATH I COMPUTER PROGRAMMING I Grade Level 10-12 Course Length ONE YEAR DESCRIPTION This is an advanced course in computer programming/software

More information

Unix File System. Class Meeting 2. * Notes adapted by Joy Mukherjee from previous work by other members of the CS faculty at Virginia Tech

Unix File System. Class Meeting 2. * Notes adapted by Joy Mukherjee from previous work by other members of the CS faculty at Virginia Tech Unix File System Class Meeting 2 * Notes adapted by Joy Mukherjee from previous work by other members of the CS faculty at Virginia Tech Unix File System The file system is your interface to: physical

More information

Unix - Basics Course on Unix and Genomic Data Prague, January 2017

Unix - Basics Course on Unix and Genomic Data Prague, January 2017 Unix - Basics Course on Unix and Genomic Data Prague, January 2017 Libor Mořkovský, Václav Janoušek, Anastassiya Zidkova, Anna Přistoupilová, Filip Sedlák http://ngs-course.readthedocs.org/en/praha-january-2017/

More information

Computer Center, CS, NCTU. Outline. FreeBSD version 9.0-RELEASE 9.1-RC1. Installing FreeBSD. From CD-ROM From USB

Computer Center, CS, NCTU. Outline. FreeBSD version 9.0-RELEASE 9.1-RC1. Installing FreeBSD. From CD-ROM From USB FreeBSD huanghs Outline FreeBSD version 9.0-RELEASE 9.1-RC1 Installing FreeBSD From CD-ROM From USB 2 FreeBSD Version 4 FreeBSD Branches/Tags Three parallel development branches: -RELEASE Latest Release

More information

C++ Lab 07 - Introduction to C++ Build Systems

C++ Lab 07 - Introduction to C++ Build Systems C++ Lab 07 - Introduction to C++ Build Systems 2.680 Unmanned Marine Vehicle Autonomy, Sensing and Communications Spring 2015 Michael Benjamin, mikerb@mit.edu Department of Mechanical Engineering Computer

More information

Ganglia is monitring system for high performance computing systems. We have two node potter.isb.ots.com and harry.isb.ots.com both are HPC nodes.

Ganglia is monitring system for high performance computing systems. We have two node potter.isb.ots.com and harry.isb.ots.com both are HPC nodes. Date : 13-Oct-2009 Ganglia installation Howto By Syed Asim Abbas For comments and suggestions : asimabbas31 at gmail dot com ------------------------------------------------------ Ganglia is monitring

More information

The vc bundle. June 11, 2018

The vc bundle. June 11, 2018 The vc bundle Roland Hieber Stephan Hennig June 11, 2018 Abstract This is a script based approach to version control for TEX documents. It works more reliably than keyword substitution based approaches,

More information

Intro to Linux & Command Line

Intro to Linux & Command Line Intro to Linux & Command Line Based on slides from CSE 391 Edited by Andrew Hu slides created by Marty Stepp, modified by Jessica Miller & Ruth Anderson http://www.cs.washington.edu/391/ 1 Lecture summary

More information

Programming Assignment III

Programming Assignment III Programming Assignment III First Due Date: (Grammar) See online schedule (submission dated midnight). Second Due Date: (Complete) See online schedule (submission dated midnight). Purpose: This project

More information

Overview. What are community packages? Who installs what? How to compile and install? Setup at FSU RCC. Using RPMs vs regular install

Overview. What are community packages? Who installs what? How to compile and install? Setup at FSU RCC. Using RPMs vs regular install Overview What are community packages? Who installs what? How to compile and install? Setup at FSU RCC Dependency hell Where to install? Using RPMs vs regular install Getting RPMs How to build an RPM Automated

More information

Gentoo Ebuilds 101. Arun Raghavan. Foss.in November 30, 2005

Gentoo Ebuilds 101. Arun Raghavan. Foss.in November 30, 2005 Gentoo Ebuilds 101 Arun Raghavan Foss.in November 30, 2005 Abstract A basic introduction to Gentoo Linux ebuild scripts, what they contain, how they work, and most importantly how to write one. Overview

More information

The role of semantic analysis in a compiler

The role of semantic analysis in a compiler Semantic Analysis Outline The role of semantic analysis in a compiler A laundry list of tasks Scope Static vs. Dynamic scoping Implementation: symbol tables Types Static analyses that detect type errors

More information

2 Installing the Software

2 Installing the Software INSTALLING 19 2 Installing the Software 2.1 Installation Remember the hour or two of slogging through software installation I promised (or warned) you about in the introduction? Well, it s here. Unless

More information

Linux & Shell Programming 2014

Linux & Shell Programming 2014 Unit -1: Introduction to UNIX/LINUX Operating System Practical Practice Questions: Find errors (if any) otherwise write output or interpretation of following commands. (Consider default shell is bash shell.)

More information

Introductory OpenFOAM Course From 2 nd to 6 th July, Joel Guerrero University of Genoa, DICAT

Introductory OpenFOAM Course From 2 nd to 6 th July, Joel Guerrero University of Genoa, DICAT Introductory OpenFOAM Course From 2 nd to 6 th July, 2012 Joel Guerrero University of Genoa, DICAT Dipartimento di Ingegneria delle Costruzioni, dell'ambiente e del Territorio Your Lecturer Joel GUERRERO

More information

Cross-compilation with Buildroot

Cross-compilation with Buildroot Instituto Superior de Engenharia do Porto Mestrado em Engenharia Eletrotécnica e de Computadores Arquitetura de Computadores Cross-compilation with Buildroot Introduction Buildroot is a tool that can be

More information

What about branches? Branch outcomes are not known until EXE What are our options?

What about branches? Branch outcomes are not known until EXE What are our options? What about branches? Branch outcomes are not known until EXE What are our options? 1 Control Hazards 2 Today Quiz Control Hazards Midterm review Return your papers 3 Key Points: Control Hazards Control

More information

The Command Line. Matthew Bender. September 10, CMSC Command Line Workshop. Matthew Bender (2015) The Command Line September 10, / 25

The Command Line. Matthew Bender. September 10, CMSC Command Line Workshop. Matthew Bender (2015) The Command Line September 10, / 25 The Command Line Matthew Bender CMSC Command Line Workshop September 10, 2015 Matthew Bender (2015) The Command Line September 10, 2015 1 / 25 Introduction Section 1 Introduction Matthew Bender (2015)

More information

Introduction to Programming in C Department of Computer Science and Engineering. Lecture No. #03 The Programming Cycle

Introduction to Programming in C Department of Computer Science and Engineering. Lecture No. #03 The Programming Cycle Introduction to Programming in C Department of Computer Science and Engineering Lecture No. #03 The Programming Cycle (Refer Slide Time: 00:22) Once we are understood what algorithms are, we will start

More information

143a, Spring 2018 Discussion Week 4 Programming Assignment. Jia Chen 27 Apr 2018

143a, Spring 2018 Discussion Week 4 Programming Assignment. Jia Chen 27 Apr 2018 143a, Spring 2018 Discussion Week 4 Programming Assignment Jia Chen 27 Apr 2018 Annoucements HW2 posted due Friday, May 4, 2018, 11:55 PM Programming Assignment posted due Friday, Jun 1, 2018, 11:55 PM

More information

Red Hat Enterprise Linux 7

Red Hat Enterprise Linux 7 Red Hat Enterprise Linux 7 RPM Packaging Guide Basic and Advanced RPM Packaging Last Updated: 2018-07-19 Red Hat Enterprise Linux 7 RPM Packaging Guide Basic and Advanced RPM Packaging Adam Kvítek Red

More information

Installing Applications in FreeBSD. wengyc

Installing Applications in FreeBSD. wengyc Installing Applications in FreeBSD wengyc Before we start Permission issue root: the superuser In Unix-like system, root is the conventional name of the user who has all rights or permissions (to all files

More information

Semantic Analysis. Outline. The role of semantic analysis in a compiler. Scope. Types. Where we are. The Compiler Front-End

Semantic Analysis. Outline. The role of semantic analysis in a compiler. Scope. Types. Where we are. The Compiler Front-End Outline Semantic Analysis The role of semantic analysis in a compiler A laundry list of tasks Scope Static vs. Dynamic scoping Implementation: symbol tables Types Static analyses that detect type errors

More information

FREEENGINEER.ORG. 1 of 6 11/5/15 8:31 PM. Learn UNIX in 10 minutes. Version 1.3. Preface

FREEENGINEER.ORG. 1 of 6 11/5/15 8:31 PM. Learn UNIX in 10 minutes. Version 1.3. Preface FREEENGINEER.ORG Learn UNIX in 10 minutes. Version 1.3 Preface This is something that I had given out to students (CAD user training) in years past. The purpose was to have on one page the basics commands

More information

Introduction to Linux. Roman Cheplyaka

Introduction to Linux. Roman Cheplyaka Introduction to Linux Roman Cheplyaka Generic commands, files, directories What am I running? ngsuser@ubuntu:~$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DISTRIB_CODENAME=xenial DISTRIB_DESCRIPTION="Ubuntu

More information

Understanding Modelpedia Authorization

Understanding Modelpedia Authorization With Holocentric Modeler and Modelpedia Understanding Modelpedia Authorization V1.0/HUG003 Table of Contents 1 Purpose 3 2 Introduction 4 3 Roles 4 3.1 System Authority Roles... 5 3.2 Role Inclusion...

More information

Compiling Software on UNIX. System Administration Decal Spring 2009 Lecture #4 George Wu Slides prepared by Joshua Kwan

Compiling Software on UNIX. System Administration Decal Spring 2009 Lecture #4 George Wu Slides prepared by Joshua Kwan Compiling Software on UNIX System Administration Decal Spring 2009 Lecture #4 George Wu Slides prepared by Joshua Kwan Today How to turn source code into programs that run on Linux? What if that software

More information

Advanced Linux Commands & Shell Scripting

Advanced Linux Commands & Shell Scripting Advanced Linux Commands & Shell Scripting Advanced Genomics & Bioinformatics Workshop James Oguya Nairobi, Kenya August, 2016 Man pages Most Linux commands are shipped with their reference manuals To view

More information

Version Control. 1 Version Control Systems. Ken Bloom. Linux User Group of Davis March 1, 2005

Version Control. 1 Version Control Systems. Ken Bloom. Linux User Group of Davis March 1, 2005 Version Control Ken Bloom Linux User Group of Davis March 1, 2005 You ve probably heard of version control systems like CVS being used to develop software. Real briefly, a version control system is generally

More information

Computer Architecture Lab 1 (Starting with Linux)

Computer Architecture Lab 1 (Starting with Linux) Computer Architecture Lab 1 (Starting with Linux) Linux is a computer operating system. An operating system consists of the software that manages your computer and lets you run applications on it. The

More information

ESC/Java2 Use and Features David Cok, Joe Kiniry, Erik Poll Eastman Kodak Company, University College Dublin, and Radboud University Nijmegen

ESC/Java2 Use and Features David Cok, Joe Kiniry, Erik Poll Eastman Kodak Company, University College Dublin, and Radboud University Nijmegen ESC/Java2 Use and Features David Cok, Joe Kiniry, Erik Poll Eastman Kodak Company, University College Dublin, and Radboud University Nijmegen David Cok, Joe Kiniry & Erik Poll - ESC/Java2 & JML Tutorial

More information

New Contributor Tutorial and Best Practices

New Contributor Tutorial and Best Practices New Contributor Tutorial and Best Practices Vicențiu Ciorbaru Software Engineer @ MariaDB Foundation * 2018 MariaDB Foundation * Goal of this session Most attendees here are highly experienced devs Let's

More information

Computer Basics 1/24/13. Computer Organization. Computer systems consist of hardware and software.

Computer Basics 1/24/13. Computer Organization. Computer systems consist of hardware and software. Hardware and Software Computer Basics TOPICS Computer Organization Data Representation Program Execution Computer Languages Computer systems consist of hardware and software. Hardware includes the tangible

More information

416 Distributed Systems. Errors and Failures, part 2 Feb 3, 2016

416 Distributed Systems. Errors and Failures, part 2 Feb 3, 2016 416 Distributed Systems Errors and Failures, part 2 Feb 3, 2016 Options in dealing with failure 1. Silently return the wrong answer. 2. Detect failure. 3. Correct / mask the failure 2 Block error detection/correction

More information

Intro to Linux. this will open up a new terminal window for you is super convenient on the computers in the lab

Intro to Linux. this will open up a new terminal window for you is super convenient on the computers in the lab Basic Terminal Intro to Linux ssh short for s ecure sh ell usage: ssh [host]@[computer].[otheripstuff] for lab computers: ssh [CSID]@[comp].cs.utexas.edu can get a list of active computers from the UTCS

More information

Creating a Patch. Created by Carl Heymann on 2010 Sep 14 1

Creating a Patch. Created by Carl Heymann on 2010 Sep 14 1 Created by on 2010 Sep 14 1 1. Starting a Patch To create a patch, and get it through the review process and into a main branch of a project, you can follow the following steps: Clone the project if you

More information

Migration Howto. Table Of Contents

Migration Howto. Table Of Contents Migration Howto Migration Howto I Table Of Contents Migration from Cobalt RaQ2 /RaQ3 Servers to 42goISP Servers...1 Prerequisites...1 Proceeding...1 General...1 RaQ...1 42go ISP Manager Server...2 Disclaimer...5

More information

CEU s (Continuing Education Units) 12 Hours (i.e. Mon Thurs 5 9PM or Sat Sun 8AM 5PM)

CEU s (Continuing Education Units) 12 Hours (i.e. Mon Thurs 5 9PM or Sat Sun 8AM 5PM) Course Name: Intro to Ruby Course Number: WITP 312 Credits: Classroom Hours: 1.2 CEU s (Continuing Education Units) 12 Hours (i.e. Mon Thurs 5 9PM or Sat Sun 8AM 5PM) Flex Training - Classroom and On-Line

More information

Tool installation for PMC-MC-X2/X4 with P2020 series processor

Tool installation for PMC-MC-X2/X4 with P2020 series processor DYNAMIC ENGINEERING 150 DuBois, Suite C Santa Cruz, CA 95060 (831) 457-8891 Fax (831) 457-4793 http://www.dyneng.com sales@dyneng.com Est. 1988 Tool installation for PMC-MC-X2/X4 with P2020 series processor

More information

Lightweight virtualization with GoboLinux Runner

Lightweight virtualization with GoboLinux Runner Lightweight virtualization with GoboLinux Runner Lucas C. Villa Real IBM Research - Brazil lucasvr@gobolinux.org About GoboLinux Alternative distribution born in 2002 Explores novel ideas in the Linux

More information

9.2 Linux Essentials Exam Objectives

9.2 Linux Essentials Exam Objectives 9.2 Linux Essentials Exam Objectives This chapter will cover the topics for the following Linux Essentials exam objectives: Topic 3: The Power of the Command Line (weight: 10) 3.3: Turning Commands into

More information

Linux Software Installation Exercises 2 Part 1. Install PYTHON software with PIP

Linux Software Installation Exercises 2 Part 1. Install PYTHON software with PIP Linux Software Installation Exercises 2 Part 1. Install PYTHON software with PIP 1.1 Login to the BioHPC machine and install deeptools; Login (ssh) to the machine that you are assigned for this workshop

More information

Simulating Multi-Core RISC-V Systems in gem5

Simulating Multi-Core RISC-V Systems in gem5 Simulating Multi-Core RISC-V Systems in gem5 Tuan Ta, Lin Cheng, and Christopher Batten School of Electrical and Computer Engineering Cornell University 2nd Workshop on Computer Architecture Research with

More information

Linux Bootcamp Fall 2015

Linux Bootcamp Fall 2015 Linux Bootcamp Fall 2015 UWB CSS Based on: http://swcarpentry.github.io/shell-novice "Software Carpentry" and the Software Carpentry logo are registered trademarks of NumFOCUS. What this bootcamp is: A

More information

Dalton/LSDalton Installation Guide

Dalton/LSDalton Installation Guide Dalton/LSDalton Installation Guide Release 2016.0 Dalton/LSDalton developers October 13, 2016 Contents 1 Supported platforms and compilers 1 2 Basic installation 3 2.1 General..................................................

More information

These instructions cover how to install and use pre-compiled binaries to monitor AIX 5.3 using NRPE.

These instructions cover how to install and use pre-compiled binaries to monitor AIX 5.3 using NRPE. Purpose This document describes how to monitor AIX servers using or Nagios Core. The instructions were contributed by Joshua Whitaker, who successfully configured to monitor AIX 5.3 servers, thanks Joshua!

More information

Grasshopper always wrong in argument with Chicken. - Book of Chan

Grasshopper always wrong in argument with Chicken. - Book of Chan Grasshopper always wrong in argument with Chicken. - Book of Chan Functional Fuzzing with Funk and further explorations into the use of functional languages for network scripting Benjamin Kurtz Q:WTF?

More information

Graphics Performance Benchmarking Framework ATI. Presented to: Jerry Howard. By: Drew Roberts, Nicholas Tower, Jason Underhill

Graphics Performance Benchmarking Framework ATI. Presented to: Jerry Howard. By: Drew Roberts, Nicholas Tower, Jason Underhill Graphics Performance Benchmarking Framework ATI Presented to: Jerry Howard By: Drew Roberts, Nicholas Tower, Jason Underhill Executive Summary The goal of this project was to create a graphical benchmarking

More information

Death to whois An exploratory look at RDAP. MATT GRISWOLD

Death to whois An exploratory look at RDAP. MATT GRISWOLD Death to whois An exploratory look at RDAP MATT GRISWOLD INTRODUCTION While writing code for PeeringDB, I did extensive work querying and comparing RDAP results across the RIRs and was

More information

CS 216 Fall 2007 Final Exam Page 1 of 10 Name: ID:

CS 216 Fall 2007 Final Exam Page 1 of 10 Name:  ID: Page 1 of 10 Name: Email ID: You MUST write your name and e-mail ID on EACH page and bubble in your userid at the bottom of EACH page including this page. If you do not do this, you will receive a zero

More information

Working with Basic Linux. Daniel Balagué

Working with Basic Linux. Daniel Balagué Working with Basic Linux Daniel Balagué How Linux Works? Everything in Linux is either a file or a process. A process is an executing program identified with a PID number. It runs in short or long duration

More information

Using Git For Development. Shantanu Pavgi, UAB IT Research Computing

Using Git For Development. Shantanu Pavgi, UAB IT Research Computing Using Git For Development Shantanu Pavgi, pavgi@uab.edu UAB IT Research Computing Outline Version control system Git Branching and Merging Workflows Advantages Version Control System (VCS) Recording changes

More information

Upgrading Your Geant4 Release

Upgrading Your Geant4 Release Upgrading Your Geant4 Release Joseph Perl, SLAC 1 Contents Major versus Minor releases What to look for in the release notes How to upgrade 2 Major versus Minor Releases Geant4 release numbers are of the

More information

12: Memory Management

12: Memory Management 12: Memory Management Mark Handley Address Binding Program goes through multiple steps from compilation to execution. At some stage, addresses in the program must be bound to physical memory addresses:

More information

Unix Processes. What is a Process?

Unix Processes. What is a Process? Unix Processes Process -- program in execution shell spawns a process for each command and terminates it when the command completes Many processes all multiplexed to a single processor (or a small number

More information

manifold Documentation

manifold Documentation manifold Documentation Release 0.0.1 Open Source Robotics Foundation Mar 04, 2017 Contents 1 What is Manifold? 3 2 Installation 5 2.1 Ubuntu Linux............................................... 5 2.2

More information

IPS for OpenIndiana and Solaris 11. Chris Ridd

IPS for OpenIndiana and Solaris 11. Chris Ridd IPS for OpenIndiana and Solaris 11 Chris Ridd Background to IPS IPS is the Image Packaging System developed in OpenSolaris Currently used by two Solarish distributions - OpenIndiana and Oracle Solaris

More information

CSE 333 Lecture 1 - Systems programming

CSE 333 Lecture 1 - Systems programming CSE 333 Lecture 1 - Systems programming Hal Perkins Department of Computer Science & Engineering University of Washington Welcome! Today s goals: - introductions - big picture - course syllabus - setting

More information

Performance analysis, development and improvement of programs, commands and BASH scripts in GNU/Linux systems

Performance analysis, development and improvement of programs, commands and BASH scripts in GNU/Linux systems Performance analysis, development and improvement of programs, commands and BASH scripts in GNU/Linux systems Erion ÇANO Prof. Dr Betim ÇIÇO 11 TH W O R K S H O P S O F T W A R E E N G I N E E R I N G

More information

Metasploit. Installation Guide Release 4.4

Metasploit. Installation Guide Release 4.4 Metasploit Installation Guide Release 4.4 TABLE OF CONTENTS About this Guide Target Audience...1 Organization...1 Document Conventions...1 Support...2 Support for Metasploit Pro and Metasploit Express...2

More information

Introduction to Linux. Woo-Yeong Jeong Computer Systems Laboratory Sungkyunkwan University

Introduction to Linux. Woo-Yeong Jeong Computer Systems Laboratory Sungkyunkwan University Introduction to Linux Woo-Yeong Jeong (wooyeong@csl.skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu What is Linux? A Unix-like operating system of a computer What is an

More information

Chapter 1 - Introduction. September 8, 2016

Chapter 1 - Introduction. September 8, 2016 Chapter 1 - Introduction September 8, 2016 Introduction Overview of Linux/Unix Shells Commands: built-in, aliases, program invocations, alternation and iteration Finding more information: man, info Help

More information

Class 1 Introduction to Selenium, Software Test Life Cycle.

Class 1 Introduction to Selenium, Software Test Life Cycle. Class 1 Introduction to Selenium, Software Test Life Cycle. I) Introduction to Selenium 1) What is Selenium? 2) History of the Selenium Project 3) Selenium Components / Selenium s Tool Suite 4) Platforms

More information

Autoconf Tutorial. Mark Galassi

Autoconf Tutorial. Mark Galassi Autoconf Tutorial Mark Galassi Copyright c 1996 Mark Galassi Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved

More information

Introduction to Linux

Introduction to Linux Introduction to Linux The command-line interface A command-line interface (CLI) is a type of interface, that is, a way to interact with a computer. Window systems, punched cards or a bunch of dials, buttons

More information

Computer Programming II C++ (830)

Computer Programming II C++ (830) DESCRIPTION This is an advanced course in computer programming/software engineering and applications. It reviews and builds on the concepts introduced in CP I. It introduces students to dynamic data structures,

More information