Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
linux_wiki:rpm_building [2015/10/23 15:39] billdozor [Source Example: Custom Scripts] |
linux_wiki:rpm_building [2016/03/18 23:05] billdozor [RPM Building] |
||
---|---|---|---|
Line 4: | Line 4: | ||
How to create RPM packages from source files. | How to create RPM packages from source files. | ||
+ | |||
+ | Resources: | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
**Checklist** | **Checklist** | ||
- | * Distro: Enterprise Linux 6.x | + | * Distro(s): Enterprise Linux 6 |
---- | ---- | ||
Line 71: | Line 75: | ||
===== Source Example: Xymon ===== | ===== Source Example: Xymon ===== | ||
+ | |||
+ | Follow the " | ||
Download source files, place a copy in rpmbuild' | Download source files, place a copy in rpmbuild' | ||
Line 122: | Line 128: | ||
Release: 1%{?dist} | Release: 1%{?dist} | ||
Summary: My Custom Scripts | Summary: My Custom Scripts | ||
- | License: GPL | + | License: GPL+ |
- | URL: www.mysite.com | + | Source0: %{name}-%{version}.tar.gz |
- | SOURCE0: %{name}-%{version}.tar.gz | + | |
%description | %description | ||
Line 139: | Line 144: | ||
%build | %build | ||
- | # install => make install ; read files from builddir, write to buildrootdir | + | # install => make install ; read files from builddir, write to buildrootdir. |
+ | # Nothing to make install, so do a manual clean, mkdir, and copy. | ||
%install | %install | ||
- | rm -rf $RPM_BUILD_ROOT | + | rm -rf %{buildroot} |
- | mkdir -p $RPM_BUILD_ROOT | + | mkdir -p %{buildroot} |
- | cp -a * $RPM_BUILD_ROOT | + | cp -a * %{buildroot} |
+ | # clean => remove files from buildrootdir; | ||
%clean | %clean | ||
- | rm -rf $RPM_BUILD_ROOT | + | rm -rf %{buildroot} |
# files => set file permissions, | # files => set file permissions, | ||
%files | %files | ||
- | %attr(755, root, users) %dir / | + | %attr(755, root, root) / |
- | %attr(750, root, users) / | + | |
# changelog => RPM itself, not software' | # changelog => RPM itself, not software' | ||
Line 157: | Line 163: | ||
* Thu Oct 22 2015 Robert Jones < | * Thu Oct 22 2015 Robert Jones < | ||
- Initial custom scripts packaging | - Initial custom scripts packaging | ||
- | |||
- | |||
</ | </ | ||
Line 369: | Line 373: | ||
RPM Build Command | RPM Build Command | ||
<code bash> | <code bash> | ||
- | rpmbuild -ba / | + | rpmbuild -ba ~/ |
</ | </ | ||
Line 417: | Line 421: | ||
====== Mock to Test Dependencies ====== | ====== Mock to Test Dependencies ====== | ||
+ | * **More Details**: [[https:// | ||
+ | |||
+ | \\ | ||
Mock is used to rebuild binary RPMs from source RPMs in a clean environment to ensure you are not missing any dependencies in your SPEC file. | Mock is used to rebuild binary RPMs from source RPMs in a clean environment to ensure you are not missing any dependencies in your SPEC file. | ||
+ | \\ | ||
Install mock | Install mock | ||
- | <code bash>yum install mock</ | + | <code bash> |
+ | yum install mock | ||
+ | </ | ||
+ | \\ | ||
Add user to the mock group | Add user to the mock group | ||
- | <code bash> | + | <code bash> |
+ | usermod -a -G mock builder | ||
+ | </ | ||
- | **TODO** | + | \\ |
+ | Set default mock config of the type of repos you are building for (ie EPEL 6, Fedora 23, etc) | ||
+ | |||
+ | Example: Set default config to EPEL 6 x86_64 | ||
+ | <code bash> | ||
+ | cd /etc/mock | ||
+ | ln -sf epel-6-x86_64.cfg default.cfg | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | Go to where your source RPMs were built and run mock against that package | ||
+ | <code bash> | ||
+ | cd ~/ | ||
+ | mock --rebuild myscripts-1.0.0-1.el6.src.rpm | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | Results location is displayed (/ | ||
+ | <code bash> | ||
+ | ls -l / | ||
+ | total 172 | ||
+ | -rw-rw-r-- 1 builder mock 4500 Oct 16 07:32 build.log | ||
+ | -rw-rw-r-- 1 builder mock 2740 Oct 16 07:32 myscripts-1.0.0-1.el6.src.rpm | ||
+ | -rw-rw-r-- 1 builder mock 2524 Oct 16 07:32 myscripts-1.0.0-1.el6.x86_64.rpm | ||
+ | -rw-rw-r-- 1 builder mock 153606 Oct 16 07:32 root.log | ||
+ | -rw-rw-r-- 1 builder mock 782 Oct 16 07:32 state.log | ||
+ | </ | ||
---- | ---- |