Bug 193132 - [NEW PORT] devel/libsearpc: Simple C language RPC framework based on GObject
Summary: [NEW PORT] devel/libsearpc: Simple C language RPC framework based on GObject
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: John Marino
URL: https://github.com/haiwen/libsearpc
Keywords:
Depends on:
Blocks: 193133 193134 193312
  Show dependency treegraph
 
Reported: 2014-08-29 20:08 UTC by Jingfeng Yan
Modified: 2014-11-02 23:38 UTC (History)
3 users (show)

See Also:


Attachments
new port shar file (4.01 KB, application/x-shar)
2014-08-29 20:08 UTC, Jingfeng Yan
no flags Details
test port (32.76 KB, text/plain)
2014-08-29 20:09 UTC, Jingfeng Yan
no flags Details
new port shar file (4.62 KB, application/x-shar)
2014-09-04 15:32 UTC, Jingfeng Yan
no flags Details
diff fixed review issues (2.64 KB, patch)
2014-09-06 12:17 UTC, Jingfeng Yan
no flags Details | Diff
updated shar file (3.83 KB, application/x-shar)
2014-09-06 12:19 UTC, Jingfeng Yan
no flags Details
portlint -AC output (74 bytes, text/plain)
2014-09-06 12:21 UTC, Jingfeng Yan
no flags Details
updated shar file (3.83 KB, application/x-shar)
2014-09-08 14:39 UTC, Jingfeng Yan
no flags Details
libsearpc.shar (3.55 KB, text/plain)
2014-09-22 01:18 UTC, Jason E. Hale
no flags Details
diff from last shar file (613 bytes, text/plain)
2014-11-01 22:12 UTC, Jingfeng Yan
no flags Details
updated shar file (3.60 KB, text/plain)
2014-11-01 22:33 UTC, Jingfeng Yan
no flags Details
test port (933 bytes, text/plain)
2014-11-01 22:35 UTC, Jingfeng Yan
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jingfeng Yan 2014-08-29 20:08:05 UTC
Created attachment 146500 [details]
new port shar file

Searpc is a simple C language RPC framework based on GObject system. Searpc
handles the serialization/deserialization part of RPC, the transport part is
 left to users.

The serialization/deserialization uses JSON format via json-glib library. A
serialized json object is returned from server to client after executing the
RPC function. Each RPC function defined in the server side should take an
extra GError argument to report error.
Comment 1 Jingfeng Yan 2014-08-29 20:09:20 UTC
Created attachment 146501 [details]
test port
Comment 2 Jingfeng Yan 2014-09-04 15:32:50 UTC
Created attachment 146792 [details]
new port shar file

update to latest 3.0.0 commit, which include some resource related fix.
Comment 3 Kubilay Kocak freebsd_committer freebsd_triage 2014-09-06 02:43:26 UTC
Initial Review:

 * COMMENT begins with an indefinite article ("A"). Also, make it shorter (see 
   new issue summary/title)
 * GH_PROJECT defaults to ${PORTNAME} already
 * Multiple USE_AUTOTOOLS entries not necessary, separate by space
 * Typo: ACLOCL_ARGS
 * Explain empty assignment: AUTOHEADER_ARGS= ?
 * CONFIGURE_ARGS already contains --prefix (See Mk/bsd.port.mk)

Please also attach:

 * portlint -AC output after addressing any outstanding issues
Comment 4 Kubilay Kocak freebsd_committer freebsd_triage 2014-09-06 02:44:57 UTC
You probably also need USES=pathfix, to correct the installation location for libsearpc.pc. 

Add DEVELOPER=yes to your /etc/make.conf to enable additional QA checks.
Comment 5 Jingfeng Yan 2014-09-06 11:54:37 UTC
(In reply to Kubilay Kocak from comment #4)
> You probably also need USES=pathfix, to correct the installation location
> for libsearpc.pc. 
> 
> Add DEVELOPER=yes to your /etc/make.conf to enable additional QA checks.

Original code specify the location of pc file, I have the idea to manually fix it.  However, when I add the following:

 20 USES=       libtool pkgconfig pathfix
 21 USE_LDCONFIG=   yes

It seems that I still miss something.
Comment 6 Jingfeng Yan 2014-09-06 11:56:37 UTC
(In reply to Jingfeng Yan from comment #5)
> (In reply to Kubilay Kocak from comment #4)
> > You probably also need USES=pathfix, to correct the installation location
> > for libsearpc.pc. 
> > 
> > Add DEVELOPER=yes to your /etc/make.conf to enable additional QA checks.
> 
> Original code specify the location of pc file, I have the idea to manually
> fix it.  However, when I add the following:
> 
>  20 USES=       libtool pkgconfig pathfix
>  21 USE_LDCONFIG=   yes
> 
> It seems that I still miss something.

could be this one

PATHFIX_MAKEFILEIN
Comment 7 Jingfeng Yan 2014-09-06 12:17:22 UTC
Created attachment 146922 [details]
diff fixed review issues
Comment 8 Jingfeng Yan 2014-09-06 12:19:16 UTC
Created attachment 146923 [details]
updated shar file

delete 146792: new port shar file
Comment 9 Jingfeng Yan 2014-09-06 12:21:24 UTC
Created attachment 146924 [details]
portlint -AC output
Comment 10 Jingfeng Yan 2014-09-08 14:39:39 UTC
Created attachment 147065 [details]
updated shar file

changed the tag name according to Seafile branch. Using v3.0-latest instead of v${PORTNAME}-latest.
Comment 11 Jingfeng Yan 2014-09-21 23:15:51 UTC
Is there anything I have to do to help this move on? Or I just need to wait. Thank you.
Comment 12 Jason E. Hale freebsd_committer 2014-09-22 01:18:02 UTC
Created attachment 147544 [details]
libsearpc.shar

- This needs USES=python:2 and lib/python2.7/site-packages in the pkg-plist needs to be %%PYTHON_SITELIBDIR%%
- All the autotools stuff should be replaced with USES=autoreconf
- The patch-Makefile.am is wrong.  The substitution should be "s|(DESTDIR)||g" because we want the first line of libsearpc.pc to only contain the PREFIX one time
- pkg-descr should be run through fmt(1)

I've made these changes and attached a new shar for you to review.
Comment 13 Jingfeng Yan 2014-09-22 02:52:32 UTC
(In reply to Jason E. Hale from comment #12)
> Created attachment 147544 [details]
> libsearpc.shar
> 
> - This needs USES=python:2 and lib/python2.7/site-packages in the pkg-plist
> needs to be %%PYTHON_SITELIBDIR%%
> - All the autotools stuff should be replaced with USES=autoreconf
> - The patch-Makefile.am is wrong.  The substitution should be
> "s|(DESTDIR)||g" because we want the first line of libsearpc.pc to only
> contain the PREFIX one time
> - pkg-descr should be run through fmt(1)
> 
> I've made these changes and attached a new shar for you to review.

Thank you for your review and efforts to change it to updated version.  It seems that something new is coming in to the port mk file, especially autoreconf.  In addition, the makeplist target uses proper variable more and more.

I run through the your updated shar file, it works fine.  I have other ports need to do the similar things.  :(
Comment 14 Jason E. Hale freebsd_committer 2014-09-22 06:10:32 UTC
(In reply to Jingfeng Yan from comment #13)
> Thank you for your review and efforts to change it to updated version.  It
> seems that something new is coming in to the port mk file, especially
> autoreconf.

The autoreconf USES was just added less than a week ago, so I wouldn't have expected you to know about it.  It does simplify things, though.

> In addition, the makeplist target uses proper variable more and
> more.

The makeplist target will only sub out the Python stuff if USES=python is set because Mk/Uses/python.mk is where those variables are defined.
Comment 15 Jingfeng Yan 2014-09-22 11:15:51 UTC
(In reply to Jason E. Hale from comment #14)
> (In reply to Jingfeng Yan from comment #13)
> > Thank you for your review and efforts to change it to updated version.  It
> > seems that something new is coming in to the port mk file, especially
> > autoreconf.
> 
> The autoreconf USES was just added less than a week ago, so I wouldn't have
> expected you to know about it.  It does simplify things, though.
> 
> > In addition, the makeplist target uses proper variable more and
> > more.
> 
> The makeplist target will only sub out the Python stuff if USES=python is
> set because Mk/Uses/python.mk is where those variables are defined.

Thank you for your explanation. Update ccnet 193133 accordingly and will update seafile also.
Comment 16 John Marino freebsd_committer 2014-10-27 15:42:21 UTC
FYI, this is one of the *very* few dports-only ports (which recently broke due to change in libtool).

https://github.com/DragonFlyBSD/DPorts/tree/master/devel/libsearpc

We've had it for a while but it's unmaintained.

It's also in "devel" and not "www".

Anyway, what's the status of this?  I'd love to remove use the official version instead.
Comment 17 Jingfeng Yan 2014-10-27 16:08:45 UTC
(In reply to John Marino from comment #16)
> FYI, this is one of the *very* few dports-only ports (which recently broke
> due to change in libtool).
> 
> https://github.com/DragonFlyBSD/DPorts/tree/master/devel/libsearpc
> 
> We've had it for a while but it's unmaintained.
> 
> It's also in "devel" and not "www".
> 
> Anyway, what's the status of this?  I'd love to remove use the official
> version instead.

So sorry for not noticing that there is another one in devel/libsearpc. When I started port seafile systematically, I decided to pull most of there pieces to be under www so that I could be a little bit lazy (not switching to different directories ...)  From early Sept, FreeBSD side also changes something about libtool, and I tried to follows the new rules. BTW, something called "libxxx" do make me to feel unsure where I should put it.  It should go close to its apps category, or should go to devel.  If you have suggestion, you can let me know.

As you have noticed, my port has been there for a while. I need to update my port system to verify the status. 

I will start to update my port of my 9.3 system, and verify the status.  What I can help is that if the port enter the system, I will maintain it till I decide to remove my name from there.  As long as I get email from weekly build failure report, I will try my best to make it back to normal as soon as possible.  Thank you for your review and suggestion.
Comment 18 John Marino freebsd_committer 2014-10-27 16:12:25 UTC
> So sorry for not noticing that there is another one in devel/libsearpc. 

I confused you, I'm sorry.
There's no devel/libsearpc in FreeBSD ports.
I was mentioning that "DPorts", a derivative of ports, does have it.  It needs to be in ports instead.

This PR is fine.
Comment 19 Jason E. Hale freebsd_committer 2014-10-27 23:13:04 UTC
Sorry about the delays.  Should this go in devel then?  You'll have to change your other new ports to reflect this as well.
Comment 20 John Marino freebsd_committer 2014-10-28 04:19:44 UTC
(In reply to Jason E. Hale from comment #19)
> Sorry about the delays.  Should this go in devel then?  You'll have to
> change your other new ports to reflect this as well.

I don't really have an opinion since I am not really familiar with what this software does.

I also think you are slightly confused about who is talking.  These are not my ports.  I am a third party commenting on this PR because I am interested in that it gets into ports.
Comment 21 John Marino freebsd_committer 2014-10-31 14:24:11 UTC
It should be noted that I'm willing to commit this port due to my interest in getting it in the tree.
Comment 22 Jingfeng Yan 2014-11-01 22:11:39 UTC
(In reply to John Marino from comment #21)
> It should be noted that I'm willing to commit this port due to my interest
> in getting it in the tree.

I really appreciate your support, help and services.  I am sorry that I was super busy on my normal tasks and messy (phone drop in the water :( ). Now, I am trying to put new diff/shar into the system.
Comment 23 Jingfeng Yan 2014-11-01 22:12:42 UTC
Created attachment 148905 [details]
diff from last shar file
Comment 24 Jason E. Hale freebsd_committer 2014-11-01 22:18:43 UTC
(In reply to John Marino from comment #21)
> It should be noted that I'm willing to commit this port due to my interest
> in getting it in the tree.

John, if you want to take this, that's fine.  I'm dealing with a family emergency right now, so I won't be able to get to this for a few days.
Comment 25 Jingfeng Yan 2014-11-01 22:33:03 UTC
Created attachment 148907 [details]
updated shar file
Comment 26 Jingfeng Yan 2014-11-01 22:35:52 UTC
Created attachment 148908 [details]
test port
Comment 27 John Marino freebsd_committer 2014-11-01 22:55:02 UTC
(In reply to Jason E. Hale from comment #24)
> John, if you want to take this, that's fine.  I'm dealing with a family
> emergency right now, so I won't be able to get to this for a few days.

Okay I'll take it.  I hope everything works out well for your family member.
Comment 28 John Marino freebsd_committer 2014-11-01 22:59:22 UTC
(In reply to Jingfeng Yan from comment #26)
> Created attachment 148908 [details]
> test port

The shar looks good.
However, this is just a "log" of poudriere output.  The actual build log is somewhere else ( /poudriere_data/logs/bulk/93amd64-local/2014-11-01_12h37m14s/logs/ )

Can you find it and update that instead?
Comment 29 John Marino freebsd_committer 2014-11-01 23:01:48 UTC
by the way, I wasn't telling you to move this from www to devel.  If you think it's better in devel, great.  If you think it's better in www, that's fine too.

If you think two categories is appropriate (e.g. CATEGORIES=www devel or CATEGORIES=devel www) then that is fine too.  The first listed is the primary category.
Comment 30 John Marino freebsd_committer 2014-11-02 14:54:02 UTC
actually, I don't see how an RPC framework falls under "www" category so I think the shar is fine how it is.
Comment 31 John Marino freebsd_committer 2014-11-02 15:04:21 UTC
(In reply to John Marino from comment #28)
> Can you find it and update that instead?

Okay, I did this myself.  it had warnings due to the obsolete @dirrm line in pkg-plist.  everything else was okay.
Comment 32 commit-hook freebsd_committer 2014-11-02 15:07:27 UTC
A commit references this bug:

Author: marino
Date: Sun Nov  2 15:06:46 UTC 2014
New revision: 372073
URL: https://svnweb.freebsd.org/changeset/ports/372073

Log:
  Add new port devel/libsearpc

  PR:		193132
  Submitted by:	JingFeng Yan

  Searpc is a simple C language RPC framework based on GObject system.
  Searpc handles the serialization/deserialization part of RPC, the
  transport part is left to users.

  The serialization/deserialization uses JSON format via json-glib
  library. A serialized json object is returned from server to client
  after executing the RPC function. Each RPC function defined in the
  server side should take an extra GError argument to report error.

Changes:
  head/devel/Makefile
  head/devel/libsearpc/
  head/devel/libsearpc/Makefile
  head/devel/libsearpc/distinfo
  head/devel/libsearpc/files/
  head/devel/libsearpc/files/patch-Makefile.am
  head/devel/libsearpc/pkg-descr
  head/devel/libsearpc/pkg-plist
Comment 33 John Marino freebsd_committer 2014-11-02 15:08:33 UTC
Okay, the port is in.  I imagine this will cause changes to be made in the PRs that depend on this one.  I'm closing this PR now, thanks!
Comment 34 John Marino freebsd_committer 2014-11-02 17:04:36 UTC
BTW, the license is LGPL3, not GPLv3.  I changed the line accordingly in a second commit.
Comment 35 Jingfeng Yan 2014-11-02 23:38:06 UTC
(In reply to John Marino from comment #34)
> BTW, the license is LGPL3, not GPLv3.  I changed the line accordingly in a
> second commit.

Thank you for your supports and help.