SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
Vítězslav Čížek
vcizek@suse.com
Kristýna Streitová
kstreitova@suse.com
Keep up with openSUSE
Packaging
News in Packaging
About us
About us
●
Vítězslav Čížek
– SUSE Software Engineer (Pack team)
●
Maintaining crypto libraries (openssl, gnutls)
●
openSUSE Maintenance Team
●
Kristýna Streitová
– SUSE Software Engineer (Pack team)
●
Maintaining MariaDB, sudo, archiving packages, …
●
Python development (spec-cleaner, rpmlint)
What is this talk about?
Motivation
●
Packaging is not static knowledge
●
Rules, macros, paths and principles change over time
●
Changes can be hard to track
Content 1/2
1) Oldies
2) systemd macros
3) %_libexecdir macro
4) %license macro
5) Configuration files in /etc and /usr/etc/
ESSENTIAL
Content 2/2
1) %autopatch and %autosetup
2) File triggers
3) Multibuild
4) Boolean dependencies
5) News in osc
ADDITIONAL
More information
●
We wrote a comprehensive article
●
Contains more news, details and examples
●
Visit https://packageninjas.github.io/ (direct link)
Essential News
Oldies
●
PreReq is now Requires(pre)
●
Use /run, not /var/run
●
/bin, /sbin, /lib and /lib64 were merged into their
counterpart directories under /usr
●
SysV is dead, use systemd
systemd Macros
●
Used in packages with systemd support
●
In the past (hard dependency)
– %{?systemd_requires}
– BuildRequires: systemd-rpm-macros
●
Now (soft dependency)
– %{?systemd_ordering}
%_libexecdir Macro
●
Binaries that shouldn’t be executed directly by users
●
In the past
– Historically defined
– /usr/lib
●
Now
– FHS 3.0 standardizes dedicated location now
– /usr/libexec
%license
●
Macro used for installing licence files
●
In the past
– %doc LICENCE
– Licence file in /usr/share/doc/packages
●
Now
– %license LICENCE
– Licence file in /usr/share/licenses
Configuration files in /etc and /usr/etc
●
In the past
– All configuration files in /etc
●
Now
– Distribution provided configuration files in /usr/etc
– Configuration files changed by administrator in /etc
●
New macro
– %_distconfdir /usr/etc
Additional News
%autopatch and %autosetup
●
Macros for easier patch application
●
%autopatch
– Automatically applies all available patches
●
%autosetup
– Combines %setup and %autopatch
Patch1: openssl-1.1.0-html.patch
Patch2: openssl-truststore.patch
Patch3: openssl-pkgconfig.patch
Patch4: openssl-no-date.patch
Patch5: openssl-cipher.patch
%prep
%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
Patch1: openssl-1.1.0-html.patch
Patch2: openssl-truststore.patch
Patch3: openssl-pkgconfig.patch
Patch4: openssl-no-date.patch
Patch5: openssl-cipher.patch
%prep
%autosetup -p1
%autosetup example
RPM File Triggers
●
Scriplets executed when a file is installed in a specific location
●
Used for package post processing
●
Can replace cache-updating macros (e.g. glib schemas, icons,
desktop files)
●
Example (glib2)
%filetriggerin -- /usr/share/glib-2.0/schemas
/usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas
Multibuild
●
Allows building one spec file with different flavors
●
Example: libssh and libssh-test (libssh.spec)
●
_multibuild file lists flavors
<multibuild>
<package>test</package>
</multibuild>
%global flavor @BUILD_FLAVOR@%{nil}
%if "%{flavor}" == "test"
%bcond_without test
%endif
Boolean (Rich) Dependencies
●
Logical expressions simplifying dependencies
●
For Requires, Recommends, Conflicts, etc.
●
Operators: and, or, if, if-else, with, without, unless,
unless-else
●
Example:
– Recommends: (gdm or lightdm or sddm)
– Requires: (grub2-snapper-plugin if snapper)
– Conflicts: (python2 without python2_split_startup)
New osc Commands
●
blame
– Similar to git blame
●
comment
– Add comments from command line
●
checkconstraints, workerinfo
– Information about workers matching the constraints
●
browse
– Open the package in the OBS Web UI in your browser
New osc Commands’ Options
●
maintained --version
– Print versions of the package in various codestreams
●
rdiff --issues-only
– Print diff of the list of the fixed bugs or CVEs
●
request --incoming
– Print only incoming request for the specified project
●
deleterequest --all
– Delete entire project
Automatic cleaning
spec-cleaner
●
Cleans RPM spec file according to the style guide
– https://github.com/rpm-software-management/spec-cleaner
●
How to use it?
– $ spec-cleaner -i mypackage.spec
– $ spec-cleaner -d mypackage.spec
Q&A
Thank you for your attention.
Are there any questions?
Join Us at www.opensuse.org
License
This slide deck is licensed under the Creative Commons Attribution-ShareAlike 4.0 International license.
It can be shared and adapted for any purpose (even commercially) as long as Attribution is given and any
derivative work is distributed under the same license.
Details can be found at https://creativecommons.org/licenses/by-sa/4.0/
General Disclaimer
This document is not to be construed as a promise by any participating organisation to develop, deliver, or
market a product. It is not a commitment to deliver any material, code, or functionality, and should not be
relied upon in making purchasing decisions. openSUSE makes no representations or warranties with respect
to the contents of this document, and specifically disclaims any express or implied warranties of
merchantability or fitness for any particular purpose. The development, release, and timing of features or
functionality described for openSUSE products remains at the sole discretion of openSUSE. Further,
openSUSE reserves the right to revise this document and to make changes to its content, at any time,
without obligation to notify any person or entity of such revisions or changes. All openSUSE marks
referenced in this presentation are trademarks or registered trademarks of SUSE LLC, in the United States
and other countries. All third-party trademarks are the property of their respective owners.
Credits
Template
Richard Brown
rbrown@opensuse.org
Design & Inspiration
openSUSE Design Team
http://opensuse.github.io/branding-
guidelines/

Weitere ähnliche Inhalte

Ähnlich wie Keep up with openSUSE Packaging

20220603_pperego_openSUSE conference.pdf
20220603_pperego_openSUSE conference.pdf20220603_pperego_openSUSE conference.pdf
20220603_pperego_openSUSE conference.pdfPaolo Perego
 
20091112 - Mars Jug - Apache Maven
20091112 - Mars Jug - Apache Maven20091112 - Mars Jug - Apache Maven
20091112 - Mars Jug - Apache MavenArnaud Héritier
 
What HPC can learn from DevOps?
What HPC can learn from DevOps?What HPC can learn from DevOps?
What HPC can learn from DevOps?Walid Shaari
 
Uyuni: the solution to manage your Linux infrastructure (OpenFest 2020)
Uyuni: the solution to manage your Linux infrastructure (OpenFest 2020)Uyuni: the solution to manage your Linux infrastructure (OpenFest 2020)
Uyuni: the solution to manage your Linux infrastructure (OpenFest 2020)Uyuni Project
 
Getting Started on Packaging Apps with Open Build Service
Getting Started on Packaging Apps with Open Build ServiceGetting Started on Packaging Apps with Open Build Service
Getting Started on Packaging Apps with Open Build ServiceAndi Sugandi
 
Open suse asia-summit-cfp
Open suse asia-summit-cfpOpen suse asia-summit-cfp
Open suse asia-summit-cfpmedwinz
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at ScaleKris Buytaert
 
Organize your chickens: NuGet for the enterprise
Organize your chickens: NuGet for the enterpriseOrganize your chickens: NuGet for the enterprise
Organize your chickens: NuGet for the enterpriseMaarten Balliauw
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack SummitMiguel Zuniga
 
Uyuni, the solution to manage your Linux infrastructure
Uyuni, the solution to manage your Linux infrastructureUyuni, the solution to manage your Linux infrastructure
Uyuni, the solution to manage your Linux infrastructureUyuni Project
 
Open security architecture - Overview
Open security architecture - OverviewOpen security architecture - Overview
Open security architecture - OverviewMandar Kharkar
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...mfrancis
 
Opendaylight SDN Controller
Opendaylight SDN ControllerOpendaylight SDN Controller
Opendaylight SDN ControllerSumit Arora
 
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...sparkfabrik
 
Best practices for DuraMat software dissemination
Best practices for DuraMat software disseminationBest practices for DuraMat software dissemination
Best practices for DuraMat software disseminationAnubhav Jain
 
Use build service API in your program
Use build service API in your programUse build service API in your program
Use build service API in your programSUSE Labs Taipei
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOpsOmid Vahdaty
 
The State of the Veil Framework
The State of the Veil FrameworkThe State of the Veil Framework
The State of the Veil FrameworkVeilFramework
 

Ähnlich wie Keep up with openSUSE Packaging (20)

20220603_pperego_openSUSE conference.pdf
20220603_pperego_openSUSE conference.pdf20220603_pperego_openSUSE conference.pdf
20220603_pperego_openSUSE conference.pdf
 
20091112 - Mars Jug - Apache Maven
20091112 - Mars Jug - Apache Maven20091112 - Mars Jug - Apache Maven
20091112 - Mars Jug - Apache Maven
 
What HPC can learn from DevOps?
What HPC can learn from DevOps?What HPC can learn from DevOps?
What HPC can learn from DevOps?
 
Uyuni: the solution to manage your Linux infrastructure (OpenFest 2020)
Uyuni: the solution to manage your Linux infrastructure (OpenFest 2020)Uyuni: the solution to manage your Linux infrastructure (OpenFest 2020)
Uyuni: the solution to manage your Linux infrastructure (OpenFest 2020)
 
oSC19 openSUSE on ARM
oSC19 openSUSE on ARMoSC19 openSUSE on ARM
oSC19 openSUSE on ARM
 
Getting Started on Packaging Apps with Open Build Service
Getting Started on Packaging Apps with Open Build ServiceGetting Started on Packaging Apps with Open Build Service
Getting Started on Packaging Apps with Open Build Service
 
Open suse asia-summit-cfp
Open suse asia-summit-cfpOpen suse asia-summit-cfp
Open suse asia-summit-cfp
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
 
Organize your chickens: NuGet for the enterprise
Organize your chickens: NuGet for the enterpriseOrganize your chickens: NuGet for the enterprise
Organize your chickens: NuGet for the enterprise
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
 
Uyuni, the solution to manage your Linux infrastructure
Uyuni, the solution to manage your Linux infrastructureUyuni, the solution to manage your Linux infrastructure
Uyuni, the solution to manage your Linux infrastructure
 
Open security architecture - Overview
Open security architecture - OverviewOpen security architecture - Overview
Open security architecture - Overview
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
 
Opendaylight SDN Controller
Opendaylight SDN ControllerOpendaylight SDN Controller
Opendaylight SDN Controller
 
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
 
Java User Group Cologne
Java User Group CologneJava User Group Cologne
Java User Group Cologne
 
Best practices for DuraMat software dissemination
Best practices for DuraMat software disseminationBest practices for DuraMat software dissemination
Best practices for DuraMat software dissemination
 
Use build service API in your program
Use build service API in your programUse build service API in your program
Use build service API in your program
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
The State of the Veil Framework
The State of the Veil FrameworkThe State of the Veil Framework
The State of the Veil Framework
 

Kürzlich hochgeladen

Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 

Kürzlich hochgeladen (20)

Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 

Keep up with openSUSE Packaging

  • 3. About us ● Vítězslav Čížek – SUSE Software Engineer (Pack team) ● Maintaining crypto libraries (openssl, gnutls) ● openSUSE Maintenance Team ● Kristýna Streitová – SUSE Software Engineer (Pack team) ● Maintaining MariaDB, sudo, archiving packages, … ● Python development (spec-cleaner, rpmlint)
  • 4. What is this talk about?
  • 5. Motivation ● Packaging is not static knowledge ● Rules, macros, paths and principles change over time ● Changes can be hard to track
  • 6. Content 1/2 1) Oldies 2) systemd macros 3) %_libexecdir macro 4) %license macro 5) Configuration files in /etc and /usr/etc/ ESSENTIAL
  • 7. Content 2/2 1) %autopatch and %autosetup 2) File triggers 3) Multibuild 4) Boolean dependencies 5) News in osc ADDITIONAL
  • 8. More information ● We wrote a comprehensive article ● Contains more news, details and examples ● Visit https://packageninjas.github.io/ (direct link)
  • 10. Oldies ● PreReq is now Requires(pre) ● Use /run, not /var/run ● /bin, /sbin, /lib and /lib64 were merged into their counterpart directories under /usr ● SysV is dead, use systemd
  • 11. systemd Macros ● Used in packages with systemd support ● In the past (hard dependency) – %{?systemd_requires} – BuildRequires: systemd-rpm-macros ● Now (soft dependency) – %{?systemd_ordering}
  • 12. %_libexecdir Macro ● Binaries that shouldn’t be executed directly by users ● In the past – Historically defined – /usr/lib ● Now – FHS 3.0 standardizes dedicated location now – /usr/libexec
  • 13. %license ● Macro used for installing licence files ● In the past – %doc LICENCE – Licence file in /usr/share/doc/packages ● Now – %license LICENCE – Licence file in /usr/share/licenses
  • 14. Configuration files in /etc and /usr/etc ● In the past – All configuration files in /etc ● Now – Distribution provided configuration files in /usr/etc – Configuration files changed by administrator in /etc ● New macro – %_distconfdir /usr/etc
  • 16. %autopatch and %autosetup ● Macros for easier patch application ● %autopatch – Automatically applies all available patches ● %autosetup – Combines %setup and %autopatch
  • 17. Patch1: openssl-1.1.0-html.patch Patch2: openssl-truststore.patch Patch3: openssl-pkgconfig.patch Patch4: openssl-no-date.patch Patch5: openssl-cipher.patch %prep %setup -q %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 Patch1: openssl-1.1.0-html.patch Patch2: openssl-truststore.patch Patch3: openssl-pkgconfig.patch Patch4: openssl-no-date.patch Patch5: openssl-cipher.patch %prep %autosetup -p1 %autosetup example
  • 18. RPM File Triggers ● Scriplets executed when a file is installed in a specific location ● Used for package post processing ● Can replace cache-updating macros (e.g. glib schemas, icons, desktop files) ● Example (glib2) %filetriggerin -- /usr/share/glib-2.0/schemas /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas
  • 19. Multibuild ● Allows building one spec file with different flavors ● Example: libssh and libssh-test (libssh.spec) ● _multibuild file lists flavors <multibuild> <package>test</package> </multibuild> %global flavor @BUILD_FLAVOR@%{nil} %if "%{flavor}" == "test" %bcond_without test %endif
  • 20. Boolean (Rich) Dependencies ● Logical expressions simplifying dependencies ● For Requires, Recommends, Conflicts, etc. ● Operators: and, or, if, if-else, with, without, unless, unless-else ● Example: – Recommends: (gdm or lightdm or sddm) – Requires: (grub2-snapper-plugin if snapper) – Conflicts: (python2 without python2_split_startup)
  • 21. New osc Commands ● blame – Similar to git blame ● comment – Add comments from command line ● checkconstraints, workerinfo – Information about workers matching the constraints ● browse – Open the package in the OBS Web UI in your browser
  • 22. New osc Commands’ Options ● maintained --version – Print versions of the package in various codestreams ● rdiff --issues-only – Print diff of the list of the fixed bugs or CVEs ● request --incoming – Print only incoming request for the specified project ● deleterequest --all – Delete entire project
  • 24. spec-cleaner ● Cleans RPM spec file according to the style guide – https://github.com/rpm-software-management/spec-cleaner ● How to use it? – $ spec-cleaner -i mypackage.spec – $ spec-cleaner -d mypackage.spec
  • 25. Q&A Thank you for your attention. Are there any questions?
  • 26. Join Us at www.opensuse.org
  • 27. License This slide deck is licensed under the Creative Commons Attribution-ShareAlike 4.0 International license. It can be shared and adapted for any purpose (even commercially) as long as Attribution is given and any derivative work is distributed under the same license. Details can be found at https://creativecommons.org/licenses/by-sa/4.0/ General Disclaimer This document is not to be construed as a promise by any participating organisation to develop, deliver, or market a product. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. openSUSE makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. The development, release, and timing of features or functionality described for openSUSE products remains at the sole discretion of openSUSE. Further, openSUSE reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All openSUSE marks referenced in this presentation are trademarks or registered trademarks of SUSE LLC, in the United States and other countries. All third-party trademarks are the property of their respective owners. Credits Template Richard Brown rbrown@opensuse.org Design & Inspiration openSUSE Design Team http://opensuse.github.io/branding- guidelines/