Bug 244991 - www/rubygem-passenger ./passenger-install-apache2-module -> make: don't know how to make /var/.../libev/ev.c
Summary: www/rubygem-passenger ./passenger-install-apache2-module -> make: don't know ...
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Sergey A. Osokin
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-03-22 22:01 UTC by gessel
Modified: 2020-10-29 01:39 UTC (History)
2 users (show)

See Also:
bugzilla: maintainer-feedback? (osa)


Attachments
Removed passenger-install-*-module files + added dependency from sysutils/rubygem-etc (1.22 KB, patch)
2020-06-11 18:36 UTC, VVD
no flags Details | Diff
New port sysutils/rubygem-etc (1.52 KB, patch)
2020-06-11 18:37 UTC, VVD
no flags Details | Diff
Removed passenger-install-*-module files + added dependency from devel/rubygem-etc (1.22 KB, patch)
2020-07-30 17:40 UTC, VVD
no flags Details | Diff
Removed passenger-install-*-module files + added dependency from devel/rubygem-etc (1.36 KB, patch)
2020-10-28 15:54 UTC, VVD
vvd: maintainer-approval?
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description gessel 2020-03-22 22:01:12 UTC
Trying to rebuild passenger for an update using

# /usr/local/lib/ruby/gems/2.6/gems/passenger-6.0.4/bin/passenger-install-apache2-module
I get the following error:

rm -f buildout/libev/libev.la
cd buildout/libev/ && make libev.la V=1
make: don't know how to make /var/ports/usr/ports/www/rubygem-passenger/work-apache/passenger-6.0.4/src/cxx_supportlib/vendor-modified/libev/ev.c. Stop

make: stopped in /usr/local/lib/ruby/gems/2.6/gems/passenger-6.0.4/buildout/libev
rake aborted!
Command failed with status (2): [cd buildout/libev/ && make libev.la V=1...]


It appears to be related to the problem reported here: https://www.pseudomoon.jp/dotclear/index.php?post/2019/01/24/passenger-install-apache2-module-%E3%81%A7%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%9F%E8%A9%B1%E3%80%82



# ls /var/ports/usr/ports/www/rubygem-passenger/work-apache/passenger-6.0.4/src/cxx_supportlib/vendor-modified/libev/
ls: /var/ports/usr/ports/www/rubygem-passenger/work-apache/passenger-6.0.4/src/cxx_supportlib/vendor-modified/libev/: No such file or directory


In the Makefile:

VPATH = /usr/local/lib/ruby/gems/2.6/gems/passenger-6.0.4/src/cxx_supportlib/vendor-modified/libev

which looks right:

 # ls /usr/local/lib/ruby/gems/2.6/gems/passenger-6.0.4/src/cxx_supportlib/vendor-modified/libev
aclocal.m4      config.guess    configure       ev_epoll.c      ev_port.c       ev_win32.c      ev.h            event.h         LICENSE         Makefile.in     README
autogen.sh      config.h.in     configure.ac    ev_kqueue.c     ev_select.c     ev_wrap.h       ev++.h          install-sh      ltmain.sh       missing
Changes         config.sub      depcomp         ev_poll.c       ev_vars.h       ev.c            event.c         libev.m4        Makefile.am     mkinstalldirs

# grep -r "work-apache" /usr/local/lib/ruby/gems/2.6/gems/passenger-6.0.4/buildout/

verifies similar issues as reported by takagiwa at pseudomooon.jp

/usr/local/lib/ruby/gems/2.6/gems/passenger-6.0.4/buildout/libev/.deps/event.Plo:2:  /var/ports/usr/ports/www/rubygem-passenger/work-apache/passenger-6.0.4/src/cxx_supportlib/vendor-modified/libev/event.c \

etc.

Replace:

/var/ports/usr/ports/www/rubygem-passenger/work-apache/passenger-6.0.4/src/cxx_supportlib/vendor-modified/libev/
with 
/usr/local/lib/ruby/gems/2.6/gems/passenger-6.0.4/src/cxx_supportlib/vendor-modified/libev/

and
/var/ports/usr/ports/www/rubygem-passenger/work-apache/passenger-6.0.4/src/ruby_native_extension
with
/usr/local/lib/ruby/gems/2.6/gems/passenger-6.0.4/src/ruby_native_extension

backup first: 

# cp /usr/local/lib/ruby/gems/2.6/gems/passenger-6.0.4/buildout/libev/.deps/event.Plo /usr/local/lib/ruby/gems/2.6/gems/passenger-6.0.4/buildout/libev/.deps/event.Plo.bak
# cp /usr/local/lib/ruby/gems/2.6/gems/passenger-6.0.4/buildout/libev/.deps/ev.Plo /usr/local/lib/ruby/gems/2.6/gems/passenger-6.0.4/buildout/libev/.deps/ev.Plo.bak
# cp /usr/local/lib/ruby/gems/2.6/gems/passenger-6.0.4/buildout/ruby/ruby-2.6.5-x86_64-freebsd/Makefile /usr/local/lib/ruby/gems/2.6/gems/passenger-6.0.4/buildout/ruby/ruby-2.6.5-x86_64-freebsd/Makefile.bak

sed it up

# sed -i "" "s|/var/ports/usr/ports/www/rubygem-passenger/work-apache/passenger-6.0.4/src/cxx_supportlib/vendor-modified/libev/|/usr/local/lib/ruby/gems/2.6/gems/passenger-6.0.4/src/cxx_supportlib/vendor-modified/libev/|g" /usr/local/lib/ruby/gems/2.6/gems/passenger-6.0.4/buildout/libev/.deps/event.Plo
# sed -i "" "s|/var/ports/usr/ports/www/rubygem-passenger/work-apache/passenger-6.0.4/src/cxx_supportlib/vendor-modified/libev/|/usr/local/lib/ruby/gems/2.6/gems/passenger-6.0.4/src/cxx_supportlib/vendor-modified/libev/|g" /usr/local/lib/ruby/gems/2.6/gems/passenger-6.0.4/buildout/libev/.deps/ev.Plo
# sed -i "" "s|/var/ports/usr/ports/www/rubygem-passenger/work-apache/passenger-6.0.4/src/ruby_native_extension|/usr/local/lib/ruby/gems/2.6/gems/passenger-6.0.4/src/ruby_native_extension|g" /usr/local/lib/ruby/gems/2.6/gems/passenger-6.0.4/buildout/ruby/ruby-2.6.5-x86_64-freebsd/Makefile

check the work

# grep -r "work-apache" /usr/local/lib/ruby/gems/2.6/gems/passenger-6.0.4/buildout/

looks good, try again:

# /usr/local/lib/ruby/gems/2.6/gems/passenger-6.0.4/bin/passenger-install-apache2-module

SUCCESS!
Comment 1 Sergey A. Osokin freebsd_committer 2020-03-23 14:31:44 UTC
Hi,

thanks for the report.


I've just tried to reproduce the issue with freshly downloaded www/rubygem-passenger port, but no luck, everything works fine.

Could you please add more details how to reproduce the issue.

Thanks.
Comment 2 Sergey A. Osokin freebsd_committer 2020-03-24 18:24:24 UTC
Hi,

my guess is you tried to use the /usr/local/lib/ruby/gems/2.6/gems/passenger-6.0.4/bin/passenger-install-apache2-module to rebuild the apache module.

If that the case then I would recommend to use a standard approach:

# cd /usr/ports/www/rubygem-passenger
# make install clean

or run

# pkg install rubygem-passenger-apache-6.0.4_1

to install a binary package.

Hope it helps.
Comment 3 VVD 2020-06-06 14:05:49 UTC
(In reply to Sergey A. Osokin from comment #2)
Same here, but you are right about install from ports or via pkg - I have file /usr/local/lib/ruby/gems/2.6/gems/passenger-6.0.5/buildout/apache2/mod_passenger.so and my Redmine on apache work fine.
But why do you keep passenger-install-apache2-module and passenger-install-nginx-module files if they doesn't work?

One more: passenger-config, passenger-memory-stats and passenger-status doesn't work without gem etc installed (gem install etc).
Comment 4 Sergey A. Osokin freebsd_committer 2020-06-10 02:26:24 UTC
(In reply to VVD from comment #3)

Hi there,

thanks for the reply.

It's definitely possible to improve the existing www/rubygem-passenger port.
Hope it's possible to see a patch against existing one with those improvements and fixes.

Thanks in advance.
Comment 5 VVD 2020-06-11 18:36:24 UTC
Created attachment 215463 [details]
Removed passenger-install-*-module files + added dependency from sysutils/rubygem-etc

Tested on 12.1 amd64.
Comment 6 VVD 2020-06-11 18:37:26 UTC
Created attachment 215464 [details]
New port sysutils/rubygem-etc

Tested on 12.1 amd64.
Comment 7 Sergey A. Osokin freebsd_committer 2020-06-17 22:31:47 UTC
Hi there,

thanks for the update.

I'd recommend to raise a separate request to add a new sysutils/rubygem-etc port to the FreeBSD ports tree.  Also, the MAINTAINER field should contain an information about a real maintainer, so I'd recommend to put your email address into that field.

Could you please explain the needful of the sysutils/rubygem-etc port for the www/rubygem-passenger.

Thank you.
Comment 8 VVD 2020-06-18 11:14:40 UTC
(In reply to Sergey A. Osokin from comment #7)
> so I'd recommend to put your email address into that field.
I think better to be maintainer some "ruby-guy" as you or sunpoet, or just ruby[at]freebsd.org. I'm not familiar with ruby world a lot.

> Could you please explain the needful of the sysutils/rubygem-etc port for the www/rubygem-passenger.
Commands passenger-config, passenger-memory-stats and passenger-status require it to work:

# passenger-config 
/usr/local/lib/ruby/site_ruby/2.4/rubygems/dependency.rb:311:in `to_specs': Could not find 'etc' (>= 0) among 125 total gem(s) (Gem::MissingSpecError)
Checked in 'GEM_PATH=/root/.gem/ruby/2.4:/usr/local/lib/ruby/gems/2.4', execute `gem env` for more information
        from /usr/local/lib/ruby/site_ruby/2.4/rubygems/specification.rb:1446:in `block in activate_dependencies'
        from /usr/local/lib/ruby/site_ruby/2.4/rubygems/specification.rb:1435:in `each'
        from /usr/local/lib/ruby/site_ruby/2.4/rubygems/specification.rb:1435:in `activate_dependencies'
        from /usr/local/lib/ruby/site_ruby/2.4/rubygems/specification.rb:1417:in `activate'
        from /usr/local/lib/ruby/site_ruby/2.4/rubygems.rb:305:in `block in activate_bin_path'
        from /usr/local/lib/ruby/site_ruby/2.4/rubygems.rb:304:in `synchronize'
        from /usr/local/lib/ruby/site_ruby/2.4/rubygems.rb:304:in `activate_bin_path'
        from /usr/local/bin/passenger-config:23:in `<main>'

# passenger-memory-stats 
/usr/local/lib/ruby/site_ruby/2.4/rubygems/dependency.rb:311:in `to_specs': Could not find 'etc' (>= 0) among 125 total gem(s) (Gem::MissingSpecError)
Checked in 'GEM_PATH=/root/.gem/ruby/2.4:/usr/local/lib/ruby/gems/2.4', execute `gem env` for more information
        from /usr/local/lib/ruby/site_ruby/2.4/rubygems/specification.rb:1446:in `block in activate_dependencies'
        from /usr/local/lib/ruby/site_ruby/2.4/rubygems/specification.rb:1435:in `each'
        from /usr/local/lib/ruby/site_ruby/2.4/rubygems/specification.rb:1435:in `activate_dependencies'
        from /usr/local/lib/ruby/site_ruby/2.4/rubygems/specification.rb:1417:in `activate'
        from /usr/local/lib/ruby/site_ruby/2.4/rubygems.rb:305:in `block in activate_bin_path'
        from /usr/local/lib/ruby/site_ruby/2.4/rubygems.rb:304:in `synchronize'
        from /usr/local/lib/ruby/site_ruby/2.4/rubygems.rb:304:in `activate_bin_path'
        from /usr/local/bin/passenger-memory-stats:23:in `<main>'

# passenger-status 
/usr/local/lib/ruby/site_ruby/2.4/rubygems/dependency.rb:311:in `to_specs': Could not find 'etc' (>= 0) among 125 total gem(s) (Gem::MissingSpecError)
Checked in 'GEM_PATH=/root/.gem/ruby/2.4:/usr/local/lib/ruby/gems/2.4', execute `gem env` for more information
        from /usr/local/lib/ruby/site_ruby/2.4/rubygems/specification.rb:1446:in `block in activate_dependencies'
        from /usr/local/lib/ruby/site_ruby/2.4/rubygems/specification.rb:1435:in `each'
        from /usr/local/lib/ruby/site_ruby/2.4/rubygems/specification.rb:1435:in `activate_dependencies'
        from /usr/local/lib/ruby/site_ruby/2.4/rubygems/specification.rb:1417:in `activate'
        from /usr/local/lib/ruby/site_ruby/2.4/rubygems.rb:305:in `block in activate_bin_path'
        from /usr/local/lib/ruby/site_ruby/2.4/rubygems.rb:304:in `synchronize'
        from /usr/local/lib/ruby/site_ruby/2.4/rubygems.rb:304:in `activate_bin_path'
        from /usr/local/bin/passenger-status:23:in `<main>'

Bur after:
# gem install etc
or
# portmaster sysutils/rubygem-etc

# passenger-config 
Usage: passenger-config <COMMAND> [OPTIONS...]

  Tool for managing, controlling and configuring a Phusion Passenger instance
  or installation.

Management commands:
  detach-process         Detach an application process from the process pool
  restart-app            Restart an application
  reopen-logs            Instruct Phusion Passenger agents to reopen their log
                         files
  api-call               Makes an API call to a Phusion Passenger agent.

Informational commands:
  list-instances         List running Phusion Passenger instances
  about                  Show information about Phusion Passenger

Phusion Passenger installation management:
  validate-install       Validate this Phusion Passenger installation
  build-native-support   Ensure that the native_support library for the current
                         Ruby interpreter is built
  install-agent          Install the Phusion Passenger agent binary
  install-standalone-runtime
                         Install the Phusion Passenger Standalone
                         runtime

Miscellaneous commands:
  system-metrics        Display system metrics
  system-properties     Display system properties

Run 'passenger-config <COMMAND> --help' for more information about each
command.

There are also some advanced commands not shown in this help message. Run
'passenger-config --help-all' to learn more about them.

# passenger-memory-stats 
Version: 6.0.5
Date   : 2020-06-18 14:11:12 +0300

--------- Apache processes ---------
PID   PPID  VMSize   Resident  Name
------------------------------------
6179  1     16.3 MB  3.5 MB    /usr/local/sbin/httpd
6184  6179  21.7 MB  4.7 MB    /usr/local/sbin/httpd
6185  6179  31.7 MB  6.6 MB    /usr/local/sbin/httpd
6186  6179  31.7 MB  6.7 MB    /usr/local/sbin/httpd
6223  6179  33.7 MB  7.4 MB    /usr/local/sbin/httpd


-------- Nginx processes ---------



----- Passenger processes -----
PID   VMSize    Resident  Name
-------------------------------
6180  29.9 MB   6.8 MB    PassengerAgent watchdog
6182  312.1 MB  127.1 MB  PassengerAgent core
6258  215.5 MB  151.6 MB  Passenger AppPreloader: /path/to/my/application (forking...) (ruby24)

# passenger-status 
Version : 6.0.5
Date    : 2020-06-18 14:10:22 +0300
Instance: 9tb4yrox (Apache/2.4.43 (FreeBSD) Phusion_Passenger/6.0.5)

----------- General information -----------
Max pool size : 16
App groups    : 1
Processes     : 1
Requests in top-level queue : 0

----------- Application groups -----------
/path/to/my/application (production):
  App root: /path/to/my/application
  Requests in queue: 0
  * PID: 6258    Sessions: 0       Processed: 149     Uptime: 1d 13h 23m 55s
    CPU: 0%      Memory  : 151M    Last used: 14m
Comment 9 VVD 2020-07-13 03:09:32 UTC
(In reply to VVD from comment #8)
Sergey, what do you think about my patches and new port sysutils/rubygem-etc?
Comment 10 VVD 2020-07-17 06:27:04 UTC
Sergey, you just update version of the www/rubygem-passenger, but without my patch. :-(

And who can get mainteinership of the sysutils/rubygem-etc?
Description is here: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=244991#c8
Comment 11 VVD 2020-07-30 17:40:39 UTC
Created attachment 216884 [details]
Removed passenger-install-*-module files + added dependency from devel/rubygem-etc

Sergey, sunpoet commited devel/rubygem-etc.
I updated my patch - commit it, please.
Comment 12 VVD 2020-09-01 20:16:43 UTC
Something wrong with patch?
Comment 13 VVD 2020-09-20 21:23:54 UTC
?
Comment 14 Sergey A. Osokin freebsd_committer 2020-10-28 01:53:36 UTC
(In reply to VVD from comment #13)
The PORTREVISION of the port should be incremented.

Could you please update the patch.

Thank you.
Comment 15 VVD 2020-10-28 15:54:25 UTC
Created attachment 219172 [details]
Removed passenger-install-*-module files + added dependency from devel/rubygem-etc

Added PORTREVISION=  1
Comment 16 commit-hook freebsd_committer 2020-10-29 01:38:31 UTC
A commit references this bug:

Author: osa
Date: Thu Oct 29 01:37:54 UTC 2020
New revision: 553577
URL: https://svnweb.freebsd.org/changeset/ports/553577

Log:
  Do not install useless files.
  Add another dependency to make happy the package tools.

  Bump PORTREVISION.

  PR:	244991

Changes:
  head/www/rubygem-passenger/Makefile
Comment 17 Sergey A. Osokin freebsd_committer 2020-10-29 01:39:09 UTC
Committed, thanks for the report!