Bug 203949 - [new port] databases/pguri: uri datatype extension for PostgreSQL
Summary: [new port] databases/pguri: uri datatype extension for PostgreSQL
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: Raphael Kubo da Costa
URL:
Keywords: easy, patch
Depends on: 203972
Blocks:
  Show dependency treegraph
 
Reported: 2015-10-22 09:43 UTC by Torsten Zühlsdorff
Modified: 2016-02-29 11:08 UTC (History)
3 users (show)

See Also:


Attachments
shar with new port pguri (1.81 KB, text/plain)
2015-10-22 09:43 UTC, Torsten Zühlsdorff
no flags Details
shar with new port pguri (1.84 KB, text/plain)
2015-10-23 11:32 UTC, Torsten Zühlsdorff
no flags Details
shar with new port pguri (1.94 KB, text/plain)
2016-02-23 16:28 UTC, Torsten Zühlsdorff
rakuco: maintainer-approval+
Details
shar with new port pguri (1.91 KB, text/plain)
2016-02-29 10:53 UTC, Torsten Zühlsdorff
ports: maintainer-approval+
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Torsten Zühlsdorff 2015-10-22 09:43:14 UTC
Created attachment 162343 [details]
shar with new port pguri

Hello,

i've created a port for this fine extension:
https://github.com/petere/pguri

It adds a datatype "uri" to PostgreSQL and allows storage of URIs. It also provides some handy functions for uri-handling.

Some QA for the new port:

/usr/ports/databases/pguri # portlint -AC
WARN: Makefile: Consider defining LICENSE.
0 fatal errors and 1 warning found.

/usr/ports/databases/pguri #  make && make stage-qa && make check-plist && make install && make deinstall
===>   pguri-1.20150415 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by pguri-1.20150415 for building
===>  Extracting for pguri-1.20150415
=> SHA256 Checksum OK for petere-pguri-1.20150415_GH0.tar.gz.
===>  Patching for pguri-1.20150415
===>   pguri-1.20150415 depends on package: uriparser>=0.7.9 - found
===>   pguri-1.20150415 depends on executable: gmake - found
===>   pguri-1.20150415 depends on executable: pkgconf - found
===>   pguri-1.20150415 depends on shared library: libpq.so.5 - found (/usr/local/lib/libpq.so.5)
===>  Configuring for pguri-1.20150415
===>  Building for pguri-1.20150415
[gmake output]
===>  Staging for pguri-1.20150415
===>   Generating temporary packing list
gmake[1]: Verzeichnis „/usr/ports/databases/pguri/work/pguri-1.20150415“ wird betreten
/bin/mkdir -p '/usr/ports/databases/pguri/work/stage/usr/local/lib/postgresql'
/bin/mkdir -p '/usr/ports/databases/pguri/work/stage/usr/local/share/postgresql/extension'
/bin/mkdir -p '/usr/ports/databases/pguri/work/stage/usr/local/share/postgresql/extension'
/usr/bin/install -c -m 755  uri.so '/usr/ports/databases/pguri/work/stage/usr/local/lib/postgresql/uri.so'
/usr/bin/install -c -m 644 uri.control '/usr/ports/databases/pguri/work/stage/usr/local/share/postgresql/extension/'
/usr/bin/install -c -m 644 uri--0.sql '/usr/ports/databases/pguri/work/stage/usr/local/share/postgresql/extension/'
gmake[1]: Verzeichnis „/usr/ports/databases/pguri/work/pguri-1.20150415“ wird verlassen
/usr/bin/strip /usr/ports/databases/pguri/work/stage/usr/local/lib/postgresql/uri.so
====> Compressing man pages (compress-man)
====> Running Q/A tests (stage-qa)
====> Running Q/A tests (stage-qa)
====> Checking for pkg-plist issues (check-plist)
===> Parsing plist
===> Checking for items in STAGEDIR missing from pkg-plist
===> Checking for items in pkg-plist which are not in STAGEDIR
===> No pkg-plist issues found (check-plist)
===>  Installing for pguri-1.20150415
===>   pguri-1.20150415 depends on shared library: libpq.so.5 - found (/usr/local/lib/libpq.so.5)
===>  Checking if pguri already installed
===>   Registering installation for pguri-1.20150415
Installing pguri-1.20150415...
In order to use the extension within database execute the following command:

CREATE EXTENSION uri;

===>  Deinstalling for pguri
===>   Deinstalling pguri-1.20150415
Updating database digests format: 100%
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 1 packages (of 0 packages in the universe):

Installed packages to be REMOVED:
        pguri-1.20150415

The operation will free 17 KiB.
[1/1] Deinstalling pguri-1.20150415...
[1/1] Deleting files for pguri-1.20150415: 100%
Comment 1 Chris Hutchinson 2015-10-22 23:47:45 UTC
(In reply to Torsten Zühlsdorff from comment #0)
> Created attachment 162343 [details]
> shar with new port pguri
> 
> Hello,
> 
> i've created a port for this fine extension:
> https://github.com/petere/pguri
> 
> It adds a datatype "uri" to PostgreSQL and allows storage of URIs. It also
> provides some handy functions for uri-handling.
> 
> Some QA for the new port:
> 
> /usr/ports/databases/pguri # portlint -AC
> WARN: Makefile: Consider defining LICENSE.
> 0 fatal errors and 1 warning found.
> 
> /usr/ports/databases/pguri #  make && make stage-qa && make check-plist &&
> make install && make deinstall
> ===>   pguri-1.20150415 depends on file: /usr/local/sbin/pkg - found
> ===> Fetching all distfiles required by pguri-1.20150415 for building
> ===>  Extracting for pguri-1.20150415
> => SHA256 Checksum OK for petere-pguri-1.20150415_GH0.tar.gz.
> ===>  Patching for pguri-1.20150415
> ===>   pguri-1.20150415 depends on package: uriparser>=0.7.9 - found
> ===>   pguri-1.20150415 depends on executable: gmake - found
> ===>   pguri-1.20150415 depends on executable: pkgconf - found
> ===>   pguri-1.20150415 depends on shared library: libpq.so.5 - found
> (/usr/local/lib/libpq.so.5)
> ===>  Configuring for pguri-1.20150415
> ===>  Building for pguri-1.20150415
> [gmake output]
> ===>  Staging for pguri-1.20150415
> ===>   Generating temporary packing list
> gmake[1]: Verzeichnis „/usr/ports/databases/pguri/work/pguri-1.20150415“
> wird betreten
> /bin/mkdir -p
> '/usr/ports/databases/pguri/work/stage/usr/local/lib/postgresql'
> /bin/mkdir -p
> '/usr/ports/databases/pguri/work/stage/usr/local/share/postgresql/extension'
> /bin/mkdir -p
> '/usr/ports/databases/pguri/work/stage/usr/local/share/postgresql/extension'
> /usr/bin/install -c -m 755  uri.so
> '/usr/ports/databases/pguri/work/stage/usr/local/lib/postgresql/uri.so'
> /usr/bin/install -c -m 644 uri.control
> '/usr/ports/databases/pguri/work/stage/usr/local/share/postgresql/extension/'
> /usr/bin/install -c -m 644 uri--0.sql
> '/usr/ports/databases/pguri/work/stage/usr/local/share/postgresql/extension/'
> gmake[1]: Verzeichnis „/usr/ports/databases/pguri/work/pguri-1.20150415“
> wird verlassen
> /usr/bin/strip
> /usr/ports/databases/pguri/work/stage/usr/local/lib/postgresql/uri.so
> ====> Compressing man pages (compress-man)
> ====> Running Q/A tests (stage-qa)
> ====> Running Q/A tests (stage-qa)
> ====> Checking for pkg-plist issues (check-plist)
> ===> Parsing plist
> ===> Checking for items in STAGEDIR missing from pkg-plist
> ===> Checking for items in pkg-plist which are not in STAGEDIR
> ===> No pkg-plist issues found (check-plist)
> ===>  Installing for pguri-1.20150415
> ===>   pguri-1.20150415 depends on shared library: libpq.so.5 - found
> (/usr/local/lib/libpq.so.5)
> ===>  Checking if pguri already installed
> ===>   Registering installation for pguri-1.20150415
> Installing pguri-1.20150415...
> In order to use the extension within database execute the following command:
> 
> CREATE EXTENSION uri;
> 
> ===>  Deinstalling for pguri
> ===>   Deinstalling pguri-1.20150415
> Updating database digests format: 100%
> Checking integrity... done (0 conflicting)
> Deinstallation has been requested for the following 1 packages (of 0
> packages in the universe):
> 
> Installed packages to be REMOVED:
>         pguri-1.20150415
> 
> The operation will free 17 KiB.
> [1/1] Deinstalling pguri-1.20150415...
> [1/1] Deleting files for pguri-1.20150415: 100%

This looks great. But the copy of uriparser currently in the ports
tree is too old (0.79). pguri recommends at least version 0.8.0,
and for good reason - 0.80 Changelog:

2013-12-20 -- 0.8.0

  * Fixed: Resolution of relative URI "/" broken
      Thanks to Mo McRoberts for the patch!
  * Fixed: uriAddBaseUri produced uriUri objects with both host
      and the absolutePath flag set (while the absolutePath flag
      should only be true for URI objects without a host) when
      resolving absolute URIs like "/" or "/foo/bar".
      Now the absolutePath flag is set to URI_FALSE and an empty
      segment is added as necessary
  * Fixed: .errorCode could end up unset, previously
      Thanks to Radu Hociung for the patch!  (bug #16)
  * Fixed: Resolve use of non-POSIX "sed -r" used when building
     documentation  (bug #18)
     Thanks to Ryan Schmidt for reporting!
  * Fixed: Build DLL with -no-undefined on Windows
      Thanks to Michel Zou for the patch!  (bug #19)
  * Added: Command line tool "uriparse"
      Thanks to Radu Hociung for coding!  (feature request #3)
  * Soname: 1:15:0

Perhaps you should poke the uriparser maintainer. You might even
craft an svn diff to upgrade it. ;)

--Chris
Comment 2 Torsten Zühlsdorff 2015-10-23 08:37:57 UTC
Hello Chris,

thats a good catch! :) While this is not an really dependency the usage of an actual uriparser would be the best way. I've created a patch for uriparser and add a dependency of the port to the update. 

@Committer: ad least that is not a real dependency. The pguri port will work just fine with the old version, but can parse some of the URIs wrong. That is because all URI parsing is done by the uriparser-lib.

Greetings,
Torsten
Comment 3 Torsten Zühlsdorff 2015-10-23 11:32:25 UTC
Created attachment 162386 [details]
shar with new port pguri

I've updated the shar - i missed that uriparser is not only a BUILD_DEPENDS. It is also a RUN_DEPENDS. Adjusted patch attached.
Comment 4 Torsten Zühlsdorff 2016-02-23 16:28:09 UTC
Created attachment 167330 [details]
shar with new port pguri

Hello,

i really would like to see this fine tool in the ports. I updated it to the newest version and raise the depends accordingly to the previous discussion.

portlint is fine except the warning for the LICENSE. it builds fine with poudriere.

So - is there anything i can do to get it faster into the ports? ;)

Greetings,
Torsten
Comment 5 Raphael Kubo da Costa freebsd_committer freebsd_triage 2016-02-28 15:16:22 UTC
Comment on attachment 167330 [details]
shar with new port pguri

Setting the "maintainer-approval+" flag on your shar helps the bug get noticed, as it shows up in the "Ports: Maintainer Approved" saved search in Bugzilla.
Comment 6 Raphael Kubo da Costa freebsd_committer freebsd_triage 2016-02-28 15:21:32 UTC
A few suggestions:
- You don't need to set GH_PROJECT if it's equal to PORTNAME.
- You're missing one tab in the USES line (remember to set your tab to 8 spaces in your editor).
- The bsd.port.options.mk include is not necessary.
- We generally try to keep each line under 80 characters, so it'd be good to split PLIST_FILES into multiple lines.
Comment 7 Torsten Zühlsdorff 2016-02-29 10:53:34 UTC
Created attachment 167560 [details]
shar with new port pguri

Hello Raphael,

thank you for your suggestions. I have attached a new shar covering all of them. :)

I'm a little bit surprised that none of them were raised by portlint. Maybe i will find some time later to add them to portlint.

Greetings,
Torsten
Comment 8 commit-hook freebsd_committer freebsd_triage 2016-02-29 11:01:08 UTC
A commit references this bug:

Author: rakuco
Date: Mon Feb 29 11:00:07 UTC 2016
New revision: 409805
URL: https://svnweb.freebsd.org/changeset/ports/409805

Log:
  New port: databases/pguri.

  URI datatype for PostgreSQL

  WWW: https://github.com/petere/pguri

  PR:		203949
  Submitted by:	Torsten Z?hlsdorff <ports@toco-domains.de>

Changes:
  head/databases/Makefile
  head/databases/pguri/
  head/databases/pguri/Makefile
  head/databases/pguri/distinfo
  head/databases/pguri/pkg-descr
  head/databases/pguri/pkg-message
Comment 9 Raphael Kubo da Costa freebsd_committer freebsd_triage 2016-02-29 11:02:22 UTC
Finally committed, thanks a lot for the patch!
Comment 10 Torsten Zühlsdorff 2016-02-29 11:08:53 UTC
You're welcome! :)

And thanks your your suggestions and for the commitment :)