SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
RPM packaging in Fedora
Lalatendu Mohanty
Senior Software Engineer @ Red Hat
License statement goes here. See https://fedoraproject.org/wiki/Licensing#Content_Licenses for acceptable licenses.
Bringing It All Together
Today's Topics
1. Why?
2. What?
Koji
Distribution git
Bodhi
COPR
3. How to get involved?
1. Learn RPM Packaging
2. Fedora guidelines
Why?
Source Install
Source Install
Copy source code
Install required dependencies (its repeating the same steps)
Compile (autogen.sh, config, make, make install) if required
Copy the executable and configuration files to required
location.
Steps for upgrade and uninstall will be similar and
complex.
High possibility for human error.
Packaging
The package is typically provided as compiled code, with
additional meta-information such as a package
description, package version, or "dependencies".
Automates the process of installing, upgrading,
configuring, and removing software packages.
Package VS Source install
Huge improvement of user experience for
install/update/uninstall
User does not have to think about dependency
resolution.
Helps maintaining it for different versions of distributions
and for different distributions.
Without package management it would be almost
impossible to create a GNU/Linux distribution.
RPM stands for RPM Package Manager
Red Hat Enterprise Linux, the Fedora Project, SUSE
Linux Enterprise, openSUSE, CentOS, Meego,
Mageia and many others.
RPM
RPM Building in Fedora
Building a RPM
Source code as tar ball
A rpm spec file
rpmbuild command
Rebuilding a Package
Prepare your system for RPM Packaging
# dnf install @development-tools fedora-packager rpmdevtools
# rpmdev-setuptree
Lets get the source RPM
dnf download --source git
Extract the source RPM
rpm2cpio git-2.4.3-6.fc22.src.rpm | cpio -idmv
Install the build dependencies
dnf builddep <package name>
Rpmbuild -ba <specfile> e.g. #rpmbuild -ba git.spec
An example RPM Spec file
# rpmdev-newspec dummy
# vi dummy.spec
Koji
It builds RPM packages.
The installation of Koji used for Fedora is at :
http://koji.fedoraproject.org/koji/
It uses mock internally to build RPMs.
Distribution git repositories
http://pkgs.fedoraproject.org/cgit/
Bodhi
It is a web based work flow to facilitate the process of
publishing package updates for Fedora.
All Fedora package updates goes through Bodhi.
RPM Work flow
COPR
Dnf/yum copr enable user/project
Build RPMs without going through the Fedora package
review process
Build for ELs and different Fedora versions.
Can be accessible anywhere from internet.
How To Get Involved?
Learn RPM Packaging
Start with rebuilding some existing packages on your
laptop/workstation
https://fedoraproject.org/wiki/How_to_create_an_RPM_
package
Contributing to Fedora
Co-maintain packages
https://fedoraproject.org/wiki/How_to_get_sponsored_into_t
he_packager_group
https://admin.fedoraproject.org/pkgdb/
Add new packages
New Package Review Process
https://fedoraproject.org/wiki/Package_Review_Process
Fedora Packaging Guildelines
https://fedoraproject.org/wiki/Packaging:Guidelines
RPM packaging is a very good method of contributing to
Fedora.
Knowing RPM packaging improves your understanding of
operating system.
It is good to have skill for
developers/testers/administrators.
Summary
Questions?
License statement goes here. See https://fedoraproject.org/wiki/Licensing#Content_Licenses for acceptable licenses.
Contact: lalatendu@fedoraproject.org
@lalatenduM

Mais conteúdo relacionado

Mais procurados

Mais procurados (19)

Docker 導入:障礙與對策
Docker 導入:障礙與對策Docker 導入:障礙與對策
Docker 導入:障礙與對策
 
Nelf2012
Nelf2012Nelf2012
Nelf2012
 
20111011 bigbluebutton
20111011 bigbluebutton20111011 bigbluebutton
20111011 bigbluebutton
 
Building RT image with Yocto
Building RT image with YoctoBuilding RT image with Yocto
Building RT image with Yocto
 
Scale13
Scale13Scale13
Scale13
 
visagie_freebsd
visagie_freebsdvisagie_freebsd
visagie_freebsd
 
Self revisor
Self revisorSelf revisor
Self revisor
 
Jonathan Corbet - Keynote: The Kernel Report
Jonathan Corbet - Keynote: The Kernel ReportJonathan Corbet - Keynote: The Kernel Report
Jonathan Corbet - Keynote: The Kernel Report
 
Golang workshop
Golang workshopGolang workshop
Golang workshop
 
Its3 Drupal
Its3 DrupalIts3 Drupal
Its3 Drupal
 
What & How to Customize Android?
What & How to Customize Android?What & How to Customize Android?
What & How to Customize Android?
 
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
 
What should you know about Net Core?
What should you know about Net Core?What should you know about Net Core?
What should you know about Net Core?
 
Snort296x centos6x 2
Snort296x centos6x 2Snort296x centos6x 2
Snort296x centos6x 2
 
Linux Presentation
Linux PresentationLinux Presentation
Linux Presentation
 
Presentation1
Presentation1Presentation1
Presentation1
 
Deployment Tactics
Deployment TacticsDeployment Tactics
Deployment Tactics
 
RPM (Red Hat Package Manager)
RPM (Red Hat Package Manager)RPM (Red Hat Package Manager)
RPM (Red Hat Package Manager)
 
Advanced Level Training on Koha / TLS (ToT)
Advanced Level Training on Koha / TLS (ToT)Advanced Level Training on Koha / TLS (ToT)
Advanced Level Training on Koha / TLS (ToT)
 

Destaque

Individual performance commitment_and_review_form_(ipcrf)_for_teachers
Individual performance commitment_and_review_form_(ipcrf)_for_teachersIndividual performance commitment_and_review_form_(ipcrf)_for_teachers
Individual performance commitment_and_review_form_(ipcrf)_for_teacherstitserchriz Gaid
 
"DepEd Order No.2, s. 2015 Guidelines on the Establishment & Implementation o...
"DepEd Order No.2, s. 2015 Guidelines on the Establishment & Implementation o..."DepEd Order No.2, s. 2015 Guidelines on the Establishment & Implementation o...
"DepEd Order No.2, s. 2015 Guidelines on the Establishment & Implementation o...REYBETH RACELIS
 
(RPMS) My Individual Performance Commitment and Review Form for SY 2015-2016
(RPMS)  My Individual Performance Commitment and Review Form for SY 2015-2016(RPMS)  My Individual Performance Commitment and Review Form for SY 2015-2016
(RPMS) My Individual Performance Commitment and Review Form for SY 2015-2016Elmer Llames
 
Sample IPCRF (Rpms hush final rechecked)
Sample IPCRF (Rpms hush final rechecked)Sample IPCRF (Rpms hush final rechecked)
Sample IPCRF (Rpms hush final rechecked)Hush Ameen
 

Destaque (6)

Jhooooo
JhoooooJhooooo
Jhooooo
 
Employee's manual
Employee's manualEmployee's manual
Employee's manual
 
Individual performance commitment_and_review_form_(ipcrf)_for_teachers
Individual performance commitment_and_review_form_(ipcrf)_for_teachersIndividual performance commitment_and_review_form_(ipcrf)_for_teachers
Individual performance commitment_and_review_form_(ipcrf)_for_teachers
 
"DepEd Order No.2, s. 2015 Guidelines on the Establishment & Implementation o...
"DepEd Order No.2, s. 2015 Guidelines on the Establishment & Implementation o..."DepEd Order No.2, s. 2015 Guidelines on the Establishment & Implementation o...
"DepEd Order No.2, s. 2015 Guidelines on the Establishment & Implementation o...
 
(RPMS) My Individual Performance Commitment and Review Form for SY 2015-2016
(RPMS)  My Individual Performance Commitment and Review Form for SY 2015-2016(RPMS)  My Individual Performance Commitment and Review Form for SY 2015-2016
(RPMS) My Individual Performance Commitment and Review Form for SY 2015-2016
 
Sample IPCRF (Rpms hush final rechecked)
Sample IPCRF (Rpms hush final rechecked)Sample IPCRF (Rpms hush final rechecked)
Sample IPCRF (Rpms hush final rechecked)
 

Semelhante a RPM Packaging in Fedora

101 2.5 use rpm and yum package management
101 2.5 use rpm and yum package management101 2.5 use rpm and yum package management
101 2.5 use rpm and yum package managementAcácio Oliveira
 
101 2.5 use rpm and yum package management
101 2.5 use rpm and yum package management101 2.5 use rpm and yum package management
101 2.5 use rpm and yum package managementAcácio Oliveira
 
2.5 use rpm and yum package management
2.5 use rpm and yum package management2.5 use rpm and yum package management
2.5 use rpm and yum package managementAcácio Oliveira
 
An Overview of the IHK/McKernel Multi-kernel Operating System
An Overview of the IHK/McKernel Multi-kernel Operating SystemAn Overview of the IHK/McKernel Multi-kernel Operating System
An Overview of the IHK/McKernel Multi-kernel Operating SystemLinaro
 
Software management in linux
Software management in linuxSoftware management in linux
Software management in linuxnejadmand
 
How to make debian package from scratch (linux)
How to make debian package from scratch (linux)How to make debian package from scratch (linux)
How to make debian package from scratch (linux)Thierry Gayet
 
101 2.4a apend software installation v2
101 2.4a apend software installation v2101 2.4a apend software installation v2
101 2.4a apend software installation v2Acácio Oliveira
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Fabrice Bernhard
 
Ruby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionRuby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionFabio Kung
 
Happy porting x86 application to android
Happy porting x86 application to androidHappy porting x86 application to android
Happy porting x86 application to androidOwen Hsu
 
2.4.0 software installation v2
2.4.0 software installation v22.4.0 software installation v2
2.4.0 software installation v2Acácio Oliveira
 
Learned lessons in a real world project
Learned lessons in a real world projectLearned lessons in a real world project
Learned lessons in a real world projectCodium
 
Os dev tool box
Os dev tool boxOs dev tool box
Os dev tool boxbpowell29a
 
Build and deploy scientific Python Applications
Build and deploy scientific Python Applications  Build and deploy scientific Python Applications
Build and deploy scientific Python Applications Ramakrishna Reddy
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014biicode
 
Installing nagios core_from_source
Installing nagios core_from_sourceInstalling nagios core_from_source
Installing nagios core_from_sourcelaonap166
 
Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)
Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)
Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)Simon Boulet
 
WordPress modern development
WordPress modern developmentWordPress modern development
WordPress modern developmentRoman Veselý
 

Semelhante a RPM Packaging in Fedora (20)

101 2.5 use rpm and yum package management
101 2.5 use rpm and yum package management101 2.5 use rpm and yum package management
101 2.5 use rpm and yum package management
 
101 2.5 use rpm and yum package management
101 2.5 use rpm and yum package management101 2.5 use rpm and yum package management
101 2.5 use rpm and yum package management
 
2.5 use rpm and yum package management
2.5 use rpm and yum package management2.5 use rpm and yum package management
2.5 use rpm and yum package management
 
An Overview of the IHK/McKernel Multi-kernel Operating System
An Overview of the IHK/McKernel Multi-kernel Operating SystemAn Overview of the IHK/McKernel Multi-kernel Operating System
An Overview of the IHK/McKernel Multi-kernel Operating System
 
Software management in linux
Software management in linuxSoftware management in linux
Software management in linux
 
$ make install
$ make install$ make install
$ make install
 
How to make debian package from scratch (linux)
How to make debian package from scratch (linux)How to make debian package from scratch (linux)
How to make debian package from scratch (linux)
 
101 2.4a apend software installation v2
101 2.4a apend software installation v2101 2.4a apend software installation v2
101 2.4a apend software installation v2
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
 
Ruby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionRuby and Rails Packaging to Production
Ruby and Rails Packaging to Production
 
Happy porting x86 application to android
Happy porting x86 application to androidHappy porting x86 application to android
Happy porting x86 application to android
 
2.4.0 software installation v2
2.4.0 software installation v22.4.0 software installation v2
2.4.0 software installation v2
 
Learned lessons in a real world project
Learned lessons in a real world projectLearned lessons in a real world project
Learned lessons in a real world project
 
Os dev tool box
Os dev tool boxOs dev tool box
Os dev tool box
 
PHP selber bauen
PHP selber bauenPHP selber bauen
PHP selber bauen
 
Build and deploy scientific Python Applications
Build and deploy scientific Python Applications  Build and deploy scientific Python Applications
Build and deploy scientific Python Applications
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014
 
Installing nagios core_from_source
Installing nagios core_from_sourceInstalling nagios core_from_source
Installing nagios core_from_source
 
Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)
Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)
Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)
 
WordPress modern development
WordPress modern developmentWordPress modern development
WordPress modern development
 

Mais de Lalatendu Mohanty

Confident OpenShift Upgrades with the Update Graph.pdf
Confident OpenShift Upgrades with the Update Graph.pdfConfident OpenShift Upgrades with the Update Graph.pdf
Confident OpenShift Upgrades with the Update Graph.pdfLalatendu Mohanty
 
Reproducible development to live applications with Red Hat CDK and Red Hat Op...
Reproducible development to live applications with Red Hat CDK and Red Hat Op...Reproducible development to live applications with Red Hat CDK and Red Hat Op...
Reproducible development to live applications with Red Hat CDK and Red Hat Op...Lalatendu Mohanty
 
OpenShift As A DevOps Platform
OpenShift As A DevOps PlatformOpenShift As A DevOps Platform
OpenShift As A DevOps PlatformLalatendu Mohanty
 
Red Hat Container Development Kit
Red Hat Container Development KitRed Hat Container Development Kit
Red Hat Container Development KitLalatendu Mohanty
 
Introduction to docker and docker compose
Introduction to docker and docker composeIntroduction to docker and docker compose
Introduction to docker and docker composeLalatendu Mohanty
 
Developer workflow with docker
Developer workflow with dockerDeveloper workflow with docker
Developer workflow with dockerLalatendu Mohanty
 
Running A SIG in CentOS @Devconf Brno 2014
Running A SIG in CentOS @Devconf Brno 2014Running A SIG in CentOS @Devconf Brno 2014
Running A SIG in CentOS @Devconf Brno 2014Lalatendu Mohanty
 
Introduction to Project atomic (CentOS Dojo Bangalore)
Introduction to Project atomic (CentOS Dojo Bangalore)Introduction to Project atomic (CentOS Dojo Bangalore)
Introduction to Project atomic (CentOS Dojo Bangalore)Lalatendu Mohanty
 

Mais de Lalatendu Mohanty (14)

Confident OpenShift Upgrades with the Update Graph.pdf
Confident OpenShift Upgrades with the Update Graph.pdfConfident OpenShift Upgrades with the Update Graph.pdf
Confident OpenShift Upgrades with the Update Graph.pdf
 
Reproducible development to live applications with Red Hat CDK and Red Hat Op...
Reproducible development to live applications with Red Hat CDK and Red Hat Op...Reproducible development to live applications with Red Hat CDK and Red Hat Op...
Reproducible development to live applications with Red Hat CDK and Red Hat Op...
 
OpenShift As A DevOps Platform
OpenShift As A DevOps PlatformOpenShift As A DevOps Platform
OpenShift As A DevOps Platform
 
Contributing To CentOS SIGs
Contributing To CentOS SIGsContributing To CentOS SIGs
Contributing To CentOS SIGs
 
Atomic CLI scan
Atomic CLI scanAtomic CLI scan
Atomic CLI scan
 
Red Hat Container Development Kit
Red Hat Container Development KitRed Hat Container Development Kit
Red Hat Container Development Kit
 
Introduction to docker and docker compose
Introduction to docker and docker composeIntroduction to docker and docker compose
Introduction to docker and docker compose
 
Developer workflow with docker
Developer workflow with dockerDeveloper workflow with docker
Developer workflow with docker
 
Vagrant For DevOps
Vagrant For DevOpsVagrant For DevOps
Vagrant For DevOps
 
GlusterFS And Big Data
GlusterFS And Big DataGlusterFS And Big Data
GlusterFS And Big Data
 
Project Atomic-Nulecule
Project Atomic-NuleculeProject Atomic-Nulecule
Project Atomic-Nulecule
 
Running A SIG in CentOS @Devconf Brno 2014
Running A SIG in CentOS @Devconf Brno 2014Running A SIG in CentOS @Devconf Brno 2014
Running A SIG in CentOS @Devconf Brno 2014
 
Docker quick start
Docker quick startDocker quick start
Docker quick start
 
Introduction to Project atomic (CentOS Dojo Bangalore)
Introduction to Project atomic (CentOS Dojo Bangalore)Introduction to Project atomic (CentOS Dojo Bangalore)
Introduction to Project atomic (CentOS Dojo Bangalore)
 

Último

Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 

Último (20)

Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 

RPM Packaging in Fedora

  • 1. RPM packaging in Fedora Lalatendu Mohanty Senior Software Engineer @ Red Hat License statement goes here. See https://fedoraproject.org/wiki/Licensing#Content_Licenses for acceptable licenses. Bringing It All Together
  • 2. Today's Topics 1. Why? 2. What? Koji Distribution git Bodhi COPR 3. How to get involved? 1. Learn RPM Packaging 2. Fedora guidelines
  • 4. Source Install Source Install Copy source code Install required dependencies (its repeating the same steps) Compile (autogen.sh, config, make, make install) if required Copy the executable and configuration files to required location. Steps for upgrade and uninstall will be similar and complex. High possibility for human error.
  • 5. Packaging The package is typically provided as compiled code, with additional meta-information such as a package description, package version, or "dependencies". Automates the process of installing, upgrading, configuring, and removing software packages.
  • 6. Package VS Source install Huge improvement of user experience for install/update/uninstall User does not have to think about dependency resolution. Helps maintaining it for different versions of distributions and for different distributions. Without package management it would be almost impossible to create a GNU/Linux distribution.
  • 7. RPM stands for RPM Package Manager Red Hat Enterprise Linux, the Fedora Project, SUSE Linux Enterprise, openSUSE, CentOS, Meego, Mageia and many others. RPM
  • 9. Building a RPM Source code as tar ball A rpm spec file rpmbuild command
  • 10. Rebuilding a Package Prepare your system for RPM Packaging # dnf install @development-tools fedora-packager rpmdevtools # rpmdev-setuptree Lets get the source RPM dnf download --source git Extract the source RPM rpm2cpio git-2.4.3-6.fc22.src.rpm | cpio -idmv Install the build dependencies dnf builddep <package name> Rpmbuild -ba <specfile> e.g. #rpmbuild -ba git.spec
  • 11. An example RPM Spec file # rpmdev-newspec dummy # vi dummy.spec
  • 12. Koji It builds RPM packages. The installation of Koji used for Fedora is at : http://koji.fedoraproject.org/koji/ It uses mock internally to build RPMs.
  • 14. Bodhi It is a web based work flow to facilitate the process of publishing package updates for Fedora. All Fedora package updates goes through Bodhi.
  • 16. COPR Dnf/yum copr enable user/project Build RPMs without going through the Fedora package review process Build for ELs and different Fedora versions. Can be accessible anywhere from internet.
  • 17. How To Get Involved?
  • 18. Learn RPM Packaging Start with rebuilding some existing packages on your laptop/workstation https://fedoraproject.org/wiki/How_to_create_an_RPM_ package
  • 19. Contributing to Fedora Co-maintain packages https://fedoraproject.org/wiki/How_to_get_sponsored_into_t he_packager_group https://admin.fedoraproject.org/pkgdb/ Add new packages
  • 20. New Package Review Process https://fedoraproject.org/wiki/Package_Review_Process
  • 22. RPM packaging is a very good method of contributing to Fedora. Knowing RPM packaging improves your understanding of operating system. It is good to have skill for developers/testers/administrators. Summary
  • 23. Questions? License statement goes here. See https://fedoraproject.org/wiki/Licensing#Content_Licenses for acceptable licenses. Contact: lalatendu@fedoraproject.org @lalatenduM