Re: Building a modified selinux source rpm

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Apr 23, 2010 at 07:15:47AM -0400, Alan Rouse wrote:
> I'm trying to get selinux working in a different linux distribution where
> the directory structure differs from the fedora / redhat pattern.  I'm
> attempting to use the fedora selinux src rpm as a starting point, but of
> course lots of files are being labelled incorrectly due to the directory
> differences.  I can identify the incorrectly labelled files and I know how
> to get them labelled correctly.  But I need to be able to make a new source
> rpm based on the fedora selinux src rpm, including the necessary changes, so
> I can distribute and maintain the policy over time.
> 
> I can execute "rpmbuild -bp  SPECS/selinux-policy.spec" to generate the
> fedora patched policy source in the BUILD directory.  Then I can make my
> changes there.  But I need to be able to regenerate the src rpm including
> those changes.  And I need to be able to maintain this over time as the
> reference policy evolves, by dropping in a new reference policy tgz and
> regenerating the patch files.   Surely there's a better way than "vi
> policy-F12.patch"!

I also maintain my own policy which you can find here: git clone git://217.19.27.98/refpolicy.git.
The repository has 3 branches: master, fedora and refpolicy.

basically i merge changes in from refpolicy and fedora.

merging refpolicy changes is (usually) as easy as:

git checkout refpolicy
git pull http://oss.tresys.com/git/refpolicy.git master
git checkout master
git merge -s recursive -X theirs refpolicy

That merges refpolicy into master and prefers refpolicy changes. The problem is that it does not resolve conflicts very nice.
Often i have to fix those later

As for merging Fedora changes i have a script that fetches the lastest policy source rpm, then preps it.
I basically copy its content to the fedora branch commit it and use the diff (vs. previous commit)  to manually merge changes in to master.

In the master branch i created a dir called redhat with redhat specific modifications and the spec file.

When i build a new source rpm this is what i do:

git archive --format=tar --prefix=refpolicy-3.7.19/ refpolicy | gzip >/home/dgrift/rpmbuild/SOURCES/refpolicy-3.7.19.tar.gz
git diff refpolicy master > /home/dgrift/rpmbuild/SOURCES/refpolicy-3.7.19.patch
cp redhat/selinux-policy.spec /home/dgrift/rpmbuild/SPECS/
rpmbuild -ba /home/dgrift/rpmbuild/SPECS/selinux-policy.spec

All in all usually a daily task which , with merging differences usually takes an hour or more.

> 
> I presume there are tools / scripts / instructions to help with this.   Can
> someone point me in the right direction?
> 
> Thanks!
> -- 
> My PGP public key:
> http://rouses.net/public_key/alan.asc

> --
> selinux mailing list
> selinux@xxxxxxxxxxxxxxxxxxxxxxx
> https://admin.fedoraproject.org/mailman/listinfo/selinux

Attachment: pgpDUlbJbNNkw.pgp
Description: PGP signature

--
selinux mailing list
selinux@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/selinux

[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux