... I bet you could do that. I bet you could build the rpm inside a
linux jail and have the relevant uname bits overridden in the right
way.


-adrian

On 14 July 2013 09:52, Teske, Devin <devin.te...@fisglobal.com> wrote:
>
> On Jul 14, 2013, at 8:01 AM, Chris Rees wrote:
>
>> On 14 Jul 2013, at 08:29, Teske, Devin wrote:
>>>
>>> To give you an idea as to just how helpful this is...
>>>
>>> Imagine the following hierarchy:
>>>
>>> src/pkgbase/depend/mystuff/script1
>>> src/pkgbase/depend/mystuff/textfile1
>>> src/pkgbase/depend/mystuff/sourcefile.c
>>> src/pkgbase/depend/mystuff/Makefile
>>>
>>> You are a developer. You want to ship a package that contains "script1", 
>>> "textfile1", and "binary1" (which is compiled by saying "make" to turn 
>>> "sourcefile.c" into "binary1")
>>>
>>> You want to ship 8 types of packages:
>>>
>>> FreeBSD-4.11
>>> FreeBSD-8.1 (i386)
>>> FreeBSD-8.1 (amd64)
>>> RedHat EL 4
>>> RedHat EL 6 (i386)
>>> RedHat EL 6 (x86_64)
>>> Debian Wheezy
>>> Debian Wheezy 64-bit
>>>
>>> This is where my framework comes in-handy...
>>>
>>> cd ~/src/pkgbase/freebsd/RELENG_4/category/mystuff
>>> make
>>> # it pulled the necessary bits from "src/pkgbase/depend/mystuff" and built 
>>> the .tgz
>>>
>>> cd ~/src/pkgbase/freebsd/RELENG_8/category/mystuff
>>> make
>>> # it pulled the necessary bits from the "depend" dir and built .tbz
>>>
>>> cd ~/src/pkgbase/redhat/rhel4/category/sub-category/mystuff
>>> make
>>> # pulled in "depend" and made .rpm
>>>
>>> cd ~/src/pkgbase/redhat/rhel6/category/sub-category/mystuff
>>> make
>>> # pulled in "depend" and made .rpm
>>>
>>> etc.
>>>
>>> Of course, *any* time the depend tree has binaries in it... you have to 
>>> first do a make in there on the platform you want to ship the binary for, 
>>> and then do "make depend" in the platform-specific tree to pull in the 
>>> binaries. Once you've done that, you don't have to muck with the depend 
>>> tree again unless there are changes there.
>>>
>>> So, I assume that your prejudice remarks are because you haven't either 
>>> seen (a) such a platform or (b) such a need for said platform.
>>>
>>> Yeah, I could rewrite the freebsd-specific logic to use "pkg create", but 
>>> let me tell you...
>>>
>>> When you have to touch a file that needs to get shipped out to multiple 
>>> platforms...
>>>
>>> It's damned nice to be able to build the FreeBSD packages under RedHat 
>>> *BECAUSE* the redhat RPMs can't be built under anything else (building an 
>>> RPM on FreeBSD and attempting to install it on RedHat results in an error 
>>> message similar to "this is an rpm for FreeBSD; go away").
>>>
>>> Whereas FreeBSD will never balk about a package built on another platform.
>>>
>>> It's a huge time-saving measure... not having to jump over to each/every 
>>> unique platform to package things up *IF/WHEN* you know that there are no 
>>> binaries in the package *or* you've already checked the pre-compiled 
>>> binaries into the arch-specific hierarchy.
>>>
>>>
>>>
>>>
>>>> Or you
>>>> can maintain the old cruft for your business -- just don't expect
>>>> anyone else to use it, or even want to.
>>>>
>>>
>>>
>>> I have no intention of making old-world packages... but I also have no 
>>> intention of using "pkg create".
>>
>> You still haven't really explained at all why you can't use libpkg.  If it 
>> doesn't run on Debian (not tried), it's got to be easier to port it than 
>> rewrite a hacked version, hasn't it???  At least then you'll also be 
>> contributing back.
>>
>
> Simple, really.
>
> Let's take RPM for example. The RPM package format has been ported to other 
> platforms.
>
> But, I can't take archivers/rpm4 and build on RPM on FreeBSD and install it 
> on RedHat.
>
> This is because the RPM format records the platform that you "build" your RPM 
> on (not the binaries, just the RPM) *into* said RPM.
>
> This actually adds a requirement to the RPM production that the RPMs be 
> produced on the platform that they will be installed-to.
>
> Currently, no such restriction exists for the building of FreeBSD packages 
> (within our system). This would have been true if we had ported pkg_create 
> (and may continue to be true if we ported pkg and its ilk), but let's say for 
> the sake of argument that the future of "pkg" looks bright and it gets ported 
> to all sorts of systems (ported in a fashion similar to RPM) *and* we find 
> one day that the +MANIFEST starts containing a target-platform (resulting in 
> refusal to install a *.txz package because it was rolled on a different 
> platform.
>
> In that case, we'd then prefer to by-pass the tools and use our own method of 
> creating the tar-ball to lift such a restriction.
>
> ASIDE: If I knew how to force rpmbuild into creating androgynous packages for 
> other architectures, I'd be doing that to life the restriction there too, but 
> I haven't figured out that.
>
> Basically... within our "pkgbase" tree, we like the branch within the tree to 
> dictate how a package is built... not what platform you're on. The goal being 
> that we can run a single package-build host that builds all of our packages 
> from a single platform.
> --
> Devin
>
> _____________
> The information contained in this message is proprietary and/or confidential. 
> If you are not the intended recipient, please: (i) delete the message and all 
> copies; (ii) do not disclose, distribute or use the message in any manner; 
> and (iii) notify the sender immediately. In addition, please be aware that 
> any message addressed to our domain is subject to archiving and review by 
> persons other than the intended recipient. Thank you.
> _______________________________________________
> freebsd-current@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to