Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

%install section failing in 'bit' during package creation #7

Closed
routelastresort opened this issue Jul 14, 2013 · 21 comments
Closed

%install section failing in 'bit' during package creation #7

routelastresort opened this issue Jul 14, 2013 · 21 comments
Assignees
Labels

Comments

@routelastresort
Copy link

For platforms with successful source builds (RPM + Deb), package compilation is failing at the %install portion under the 'bit' extension. Here's an example of Fedora 18. I'll supplement this issue with an attempted build under Ubuntu, but I believe this is the same exact area that it trips up.

This may be fixable with specfile options...

Making install in bit
make[2]: Entering directory `/home/vagrant/rpmbuild/BUILD/libslax-0.16.14/extensions/bit'
make[3]: Entering directory `/home/vagrant/rpmbuild/BUILD/libslax-0.16.14/extensions/bit'
 /bin/mkdir -p '/home/vagrant/rpmbuild/BUILDROOT/libslax-0.16.14-1.fc18.x86_64/usr/lib64/slax/extensions'
 /bin/sh ../../libtool   --mode=install /bin/install -c   libext_bit.la '/home/vagrant/rpmbuild/BUILDROOT/libslax-0.16.14-1.fc18.x86_64/usr/lib64/slax/extensions'
libtool: install: /bin/install -c .libs/libext_bit.lai /home/vagrant/rpmbuild/BUILDROOT/libslax-0.16.14-1.fc18.x86_64/usr/lib64/slax/extensions/libext_bit.la
libtool: install: /bin/install -c .libs/libext_bit.a /home/vagrant/rpmbuild/BUILDROOT/libslax-0.16.14-1.fc18.x86_64/usr/lib64/slax/extensions/libext_bit.a
libtool: install: chmod 644 /home/vagrant/rpmbuild/BUILDROOT/libslax-0.16.14-1.fc18.x86_64/usr/lib64/slax/extensions/libext_bit.a
libtool: install: ranlib /home/vagrant/rpmbuild/BUILDROOT/libslax-0.16.14-1.fc18.x86_64/usr/lib64/slax/extensions/libext_bit.a
libtool: install: warning: remember to run `libtool --finish /usr/lib64/slax/extensions'
/usr/bin/make  install-exec-hook
make[4]: Entering directory `/home/vagrant/rpmbuild/BUILD/libslax-0.16.14/extensions/bit'
sh: /usr/lib64/slax/extensions/libext_bit.la: No such file or directory
make[4]: *** [install-exec-hook] Error 1
make[4]: Leaving directory `/home/vagrant/rpmbuild/BUILD/libslax-0.16.14/extensions/bit'
make[3]: *** [install-exec-am] Error 2
make[3]: Leaving directory `/home/vagrant/rpmbuild/BUILD/libslax-0.16.14/extensions/bit'
make[2]: *** [install-am] Error 2
make[2]: Leaving directory `/home/vagrant/rpmbuild/BUILD/libslax-0.16.14/extensions/bit'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/home/vagrant/rpmbuild/BUILD/libslax-0.16.14/extensions'
make: *** [install-recursive] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.Mx77Ol (%install)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.Mx77Ol (%install)
@philshafer
Copy link
Contributor

On Jul 14, 2013, at 5:10 PM, John Deatherage wrote:

libext_bit.la

For some odd reason, the .la files are not being created correctly:

The name that we can dlopen(3).

dlname=''

where on other platforms:

The name that we can dlopen(3).

dlname='libext_xutil.0.dylib'

I can't imagine it's supposed to work this way, so assumably I've got something work in autoconf/libtool. Still investigating.....

Thanks,
Phil

@routelastresort
Copy link
Author

A few thoughts on libtool/autotools:

@philshafer
Copy link
Contributor

autoconf is terrible, like walking thru a minefield in which you don't know for a long time if you stepped in something and how much damage it's going to do. Or maybe it's more like:

http://images2.fanpop.com/image/photos/13600000/Roger-Rabbit-roger-rabbit-13613366-406-225.jpg

Either way, until something better comes along, it's the best path, ugly and painful as it is.

And it makes no sense. I can see using a configure script for, say, perl, but than we should have a perl-based system will all the functionality that autoconf, gmake, libtool, and all the rest lack.

Sigh.... 'nuff ranting.... back to the real world, where autoconf is the only horse in town.......

Thanks,
Phil

On Jul 14, 2013, at 6:07 PM, John Deatherage wrote:

A few thoughts on libtool:

Eric S. Raymond

Ted Ts'o


Reply to this email directly or view it on GitHub.

@routelastresort
Copy link
Author

I hope to alleviate some of the "fun" of cross platform issues, and I'm working on it as we speak. In terms of continuous integration, this will be building each time you create a new release tag for every platform, and it will be easy to see what breaks. This will test both tarball installs from source, and RPM and Deb package building. There's no reason it can't open tickets for the exact compilation errors, but that would probably be best served with an issue tracking system other than github ;)

Of course, you can/will be able to implement this locally as well, using the scripts. I'll publish to github sometime within the next 2 weeks!

@philshafer
Copy link
Contributor

Sounds great.

Thanks,
Phil

On Jul 15, 2013, at 2:29 AM, John Deatherage wrote:

I hope to alleviate some of the "fun" of cross platform issues, and I'm working on it as we speak. In terms of continuous integration, this will be building each time you create a new release tag for every platform, and it will be easy to see what breaks. This will test both tarball installs from source, and RPM and Deb package building. There's no reason it can't open tickets for the exact compilation errors, but that would probably be best served with an issue tracking system other than github ;)

Of course, you can/will be able to implement this locally as well, using the scripts. I'll publish to github sometime within the next 2 weeks!


Reply to this email directly or view it on GitHub.

@philshafer
Copy link
Contributor

Fixed in libslax-0.16.15 (and juise-0.5.6)

@routelastresort
Copy link
Author

This is still failing for me on Fedora18, but the source compilation of the Ansible playbook is completing, which is good. I'll confirm with Ubuntu as well. Once this is resolved, we can build packages. Perhaps I should push the ansible code up to github, so you can test as well? (in a private repository)

@philshafer
Copy link
Contributor

Can I get the vagrant file for you fedora? I'll test it tomorrow.

Thanks,
Phil

On Jul 16, 2013, at 3:44 AM, John Deatherage wrote:

This is still failing for me on Fedora18, but the source compilation of the Ansible playbook is completing, which is good. I'll confirm with Ubuntu as well. Once this is resolved, we can build packages. Perhaps I should push the ansible code up to github, so you can test as well?


Reply to this email directly or view it on GitHub.

@philshafer
Copy link
Contributor

On Jul 16, 2013, at 3:44 AM, John Deatherage wrote:

This is still failing for me on Fedora18

Can you send details about what's failing?

Thanks,
Phil

@routelastresort
Copy link
Author

Same exact error messages as above. I can tar up my build dirs and send them to you. I have a Vagrantfile on the way (just need to need add the box URLs for the version I'm sending you), and made a routelastresort/juniper-build-package on here.

@routelastresort
Copy link
Author

Any progress on this? (it's marked as closed), but still the main issue for package building.

You need the packages:

  • rpm-build
  • redhat-rpm-config
  • make
  • gcc

http://fedoraproject.org/wiki/How_to_create_an_RPM_package looks like a good guide. You're basically doing this:

  1. rpmdev-setuptree
  2. 'rpmbuild -ba libslax.spec', with libslax.spec in ~/rpmbuild/SPECS with the source in ~/rpmbuild/SOURCES

the link on the Fedora Project page is actually a pretty good guide.

@philshafer
Copy link
Contributor

I'm not a fedora guy. Can you point me at a reasonable iso (for vmware fusion) of vagrant box?

What does your .la file have as the dlname? Is it still empty even with the patched version?

Thanks,
Phil

@philshafer philshafer reopened this Jul 19, 2013
@ghost ghost assigned philshafer Jul 20, 2013
@routelastresort
Copy link
Author

http://fedoraproject.org/en/get-fedora-options is where the actual Fedora ISOs are, and those can be installed under Fusion. There aren't a lot of Fusion boxes yet, and CentOS 6.4 doesn't have new enough packages.

@routelastresort
Copy link
Author

I've got some public Linux boxes for you to test - hit me up on email when you're around!

@philshafer
Copy link
Contributor

Looked there previously. Didn't see a fedora18. I'll proceed with 19.

Thanks,
Phil

On Jul 20, 2013, at 8:01 AM, John Deatherage wrote:

http://fedoraproject.org/en/get-fedora-options is where the actual Fedora ISOs are, and those can be installed under Fusion. There aren't a lot of Fusion boxes yet, and CentOS 6.4 doesn't have new enough packages.


Reply to this email directly or view it on GitHub.

@routelastresort
Copy link
Author

Any progress here? I can take a look at it myself again... it's definitely fixable with some amount of code, but I'm more concerned with best practices vs. just getting it to build. Again, this is on all Linux platforms - I guess I can compare the delta between BSD + Linux, since I no longer have access to an OSX system 👍

@philshafer
Copy link
Contributor

Just some notes from this case:

Using .box from puppetlabs:

http://puppet-vagrant-boxes.puppetlabs.com/fedora-18-x64-vbox4210.box
http://github.com/puppetlabs/puppet-vagrant-boxes

"rpm" is fairly weak, but "yum" resembles "port":

http://yum.baseurl.org/download/3.4/yum-3.4.3.tar.gz

Then install some basics needs:

yum install rpm-build.x86_64
yum install redhat-rpm-config.noarch
yum install libxml2-devel.x86_64
yum install libxslt-devel.x86_64
yum install libcurl-devel.x86_64
yum install libssh2-devel.x86_64
yum install bison-devel.x86_64
yum install bison.x86_64

@philshafer
Copy link
Contributor

Bad news is that I'm not seeing your failure. After a "make install" (0.16.16), I see:

[root@localhost build]# ls -al /usr/local/lib/slax/extensions/h*
lrwxrwxrwx. 1 root root 15 Aug 6 09:25 /usr/local/lib/slax/extensions/http%3A%2F%2Fxml.libslax.org%2Fbit.ext -> libext_bit.so.0*
lrwxrwxrwx. 1 root root 16 Aug 6 09:25 /usr/local/lib/slax/extensions/http%3A%2F%2Fxml.libslax.org%2Fcurl.ext -> libext_curl.so.0*
lrwxrwxrwx. 1 root root 14 Aug 6 09:25 /usr/local/lib/slax/extensions/http%3A%2F%2Fxml.libslax.org%2Fos.ext -> libext_os.so.0*
lrwxrwxrwx. 1 root root 17 Aug 6 09:25 /usr/local/lib/slax/extensions/http%3A%2F%2Fxml.libslax.org%2Fxutil.ext -> libext_xutil.so.0*
[root@localhost build]#

which is what I'd expect. A test case also succeeds:

[root@localhost build]# slaxproc -E -g ../tests/core/test-empty-32.slax
bit:and(0011, 0101) -> 0001
bit:and(0, 0) -> 0
bit:and(0, 1) -> 0
bit:and(1, 0) -> 0
bit:and(1, 1) -> 1
bit:nand(0011, 0101) -> 1110
bit:nand(0, 0) -> 1
bit:nand(0, 1) -> 1
bit:nand(1, 0) -> 1
bit:nand(1, 1) -> 0
...

This is on fedora18:

[root@localhost build]# uname -a
Linux localhost.localdomain 3.6.10-4.fc18.x86_64 #1 SMP Tue Dec 11 18:01:27 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux


So can you please retest with 0.16.16 and if it's still failing, help me understand what's different between our worlds? Did you get the ssh creds setup on one of your boxes?

Thanks,
Phil

@philshafer
Copy link
Contributor

Reproduced it:

rpmbuild -ba packaging/libslax.spec
...
/usr/bin/make install-exec-hook
make[4]: Entering directory /root/rpmbuild/BUILD/libslax-0.16.16/extensions/bit' sh: /usr/lib64/slax/extensions/libext_bit.la: No such file or directory Install link libext_bit.so -> http%3A%2F%2Fxml.libslax.org%2Fbit.ext ... /bin/sh: line 4: cd: /usr/lib64/slax/extensions: No such file or directory make[4]: *** [install-exec-hook] Error 1 make[4]: Leaving directory/root/rpmbuild/BUILD/libslax-0.16.16/extensions/bit'
...

@philshafer
Copy link
Contributor

I believe this issue is fixed, and I don't see it during the RPM builds. Please confirm and I'll close it.

Thanks,
Phil

@philshafer
Copy link
Contributor

fixed in libslax-0.18.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants