Re: [Rpm-maint] [rpm-software-management/rpm] RFE: Allow automating %setup arguments (#368)

2017-12-10 Thread Jeff Johnson
@nim-nim OTOH, note that builds on a public branch (i.e. no authorization), 
downloaded through https/ssh (so small chance of maliciously modified),  on a 
tagged/documented check-in located in an upstream VCS repository, are entirely 
maintainable, as well as being consistent with RPM's goals of "reproducible 
builds".

Overloading %setup/%patch convolutes a reproducible build with obscure rpm 
macro configuration.

In fact, many slow-releasing upstream projects are already released through 
snapshot tar balls as above. The only difference with existing practice in 
packaging is through conventions in NVR naming to indicate a pre-release, and 
the tyranny of manually moving, say, a specific checkin forward by editing a 
maven-like SourceN: URL (as opposed to preparing a pre-release tarball, which 
can certainly be done already to simplify rpm packaging using %setup without 
overloading).

But perhaps I misunderstand the goals described here: 
[https://fedoraproject.org/wiki/Forge-hosted_projects_packaging_automation](url)

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/368#issuecomment-350579988___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] RFE: Allow automating %setup arguments (#368)

2017-12-10 Thread nim-nim
Thank you for the additional info! I will look at it.

I'm not overly interested in building directly from VCS since that's security 
hell (both from the auth POW and the protocol filtering POW). Supporting 
building from github/gitlab/whatever https auto-tarballs is good enough for me.

In fact it's already way too powerful, as the downside of working at commit 
granularity is no one properly checks each commit and code explodes right and 
left as stuff it depends on moves in uncontrolled way. I'll take a release, or 
even a tag, any day over a commit, let alone a commit not from the main branch.

VCS have not make release engineering obsolete, they've just helped devs run 
away from consequences faster. But someone still needs to deploy in the end and 
that someone takes all the accumulated technical debt in the figure at once.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/368#issuecomment-350579032___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] RFE: Allow automating %setup arguments (#368)

2017-12-10 Thread Jeff Johnson

Finally -- overloading %setup like above is a hackers pathway away from 
reproducible builds into insanity. JMNSHO ...

(aside)
The real problem -- never well supported, but entirely achievable -- is

How to build from a VCS checkout (not a tarball) with minimal hassle?

This requires additional paraders like URL, authentication, repository name, 
branch, and checkout identifier (to name just a few of the additional 
parameters required).

All of the above additional parameters can be mapped into a SourceN: URL ... 
see what Maven does.

Parsing the URL and writing the script that does, say git clone or git pull 
would be _FAR_ more useful than overloading %setup.



-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/368#issuecomment-350567149___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] RFE: Allow automating %setup arguments (#368)

2017-12-10 Thread Jeff Johnson
The example is

%define setup() %%setup %{?_setup_args}

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/368#issuecomment-350566269___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] RFE: Allow automating %setup arguments (#368)

2017-12-10 Thread Jeff Johnson
Read about parametrized macros in rpm installed docs (used to be 
/usr/share/doc/rpm-X.Y/macros, perhaps still is).

Basically a parameterized macro will parse all options/arguments to EOL into 
she'll-like transient macro names.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/368#issuecomment-350565696___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] RFE: Allow automating %setup arguments (#368)

2017-12-10 Thread nim-nim
That works, thanks, I didn't know about this syntax before !

`rpm.define("setup %%setup %{?setupargs}")`

I don't understand 'use a parameterized macro if necessary to eat existing 
arguments/options' however. Can you provide a simple example?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/368#issuecomment-350557027___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] RFE: Allow automating %setup arguments (#368)

2017-12-10 Thread Jeff Johnson
@nim-nim: you can likely already do this, provided you have some means to 
overload %setup before the invocation in the spec file.

Macros are expanded before %setup is processed. So a definition like

%define setup %%setup -c -n whatever

will append (actually interpose, but you can use a parameterized macro if 
necessary to eat existing arguments/options).

You can also load the definition from macro configuration, and add 
%{?_setup_args} if that floats your boat.




-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/368#issuecomment-350554474___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] Building rpm-4.14.0

2017-12-10 Thread Baho Utot

If this is the wrong list point me to the correct list.

I am having trouble building rpm-4.14.0.  when configuring for the build 
configure does not create db.h so when running make if fails any one 
have a solution?



___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Missing build id, Generating build-id links failed (#367)

2017-12-10 Thread Mark Wielaard
On Sun, Dec 10, 2017 at 09:34:25AM +0100, Tzafrir Cohen wrote:
> On Fri, Dec 08, 2017 at 12:35:44AM +0100, Mark Wielaard wrote:
> > At least the Fedora go toolchain should be able to generate proper 
> > build-ids these days.
> > If not, see these (old) notes:
> > https://fedoraproject.org/wiki/PackagingDrafts/Go#Build_ID
> 
> So is the official answer to use gccgo?

I don't know if that is an official answer, but gccgo certainly produces
more conforming ELF objects.

> I recently ran into this issue and found no good answer. I ended up
> using the following Makefile snippet:
> 
> BUILD_ID=$(shell head -c20 /dev/urandom|od -An -tx1|tr -d ' \n')
> BUILD_ID_OPT=-B 0x$(BUILD_ID)
> BUILD_ARGS=-ldflags "-X main.version=$(VERSION) -X main.commit=$(COMMIT) -X 
> main.buildtime=$(BUILD_TIME) $(BUILD_ID_OPT)"
> 
> (Yes, not a reproducible build if I use buildtime, but useful so far)

I believe that is what Fedora also uses. Or a variant that is reproducible.

You can also of course undefine the _missing_build_ids_terminate_build macro
in your spec file to work around such toolchain issues.

Cheers,

Mark
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Missing build id, Generating build-id links failed (#367)

2017-12-10 Thread Tzafrir Cohen
On Fri, Dec 08, 2017 at 12:35:44AM +0100, Mark Wielaard wrote:
> Hi Eli,
> 
> On Thu, Dec 07, 2017 at 03:20:01PM -0800, Eli Uriegas wrote:
> > ```
> > error: Missing build-id in 
> > /root/rpmbuild/BUILDROOT/docker-ce-17.12.0.ce-0.1.rc1.fc27.x86_64/usr/bin/docker-containerd-shim
> > error: Generating build-id links failed
> > Missing build-id in 
> > /root/rpmbuild/BUILDROOT/docker-ce-17.12.0.ce-0.1.rc1.fc27.x86_64/usr/bin/docker-containerd-shim
> > Generating build-id links failed
> > ```
> 
> That probably means the compiler/linker of that binary didn't generate a 
> proper
> build-id for that binary. The golang toolchain didn't in the past.
> 
> > I believe it may have something to do with this commit: 
> > https://github.com/rpm-software-management/rpm/commit/5e82c7e8a8fc05195cdf622d0a120b9e70a9371b
> 
> Why do you believe that? That commit should only fix issues for noarch 
> packages.
> Real binaries must have build-ids.
> 
> At least the Fedora go toolchain should be able to generate proper build-ids 
> these days.
> If not, see these (old) notes:
> https://fedoraproject.org/wiki/PackagingDrafts/Go#Build_ID

So is the official answer to use gccgo?

I recently ran into this issue and found no good answer. I ended up
using the following Makefile snippet:


BUILD_ID=$(shell head -c20 /dev/urandom|od -An -tx1|tr -d ' \n')
BUILD_ID_OPT=-B 0x$(BUILD_ID)
BUILD_ARGS=-ldflags "-X main.version=$(VERSION) -X main.commit=$(COMMIT) -X 
main.buildtime=$(BUILD_TIME) $(BUILD_ID_OPT)"

(Yes, not a reproducible build if I use buildtime, but useful so far)

-- 
Tzafrir Cohen | tzaf...@jabber.org | VIM is
http://tzafrir.org.il || a Mutt's
tzaf...@cohens.org.il ||  best
tzaf...@debian.org|| friend
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint