Summary: | [NEW PORT] devel/nexus2-oss: Repository management software | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Ports & Packages | Reporter: | Dušan Vejnovič <freebsd> | ||||||||||||||||||||||||||||
Component: | Individual Port(s) | Assignee: | Carlos J. Puga Medina <cpm> | ||||||||||||||||||||||||||||
Status: | Closed FIXED | ||||||||||||||||||||||||||||||
Severity: | Affects Only Me | CC: | amdmi3, cpm, feld, freebsd, koobs, michael.osipov | ||||||||||||||||||||||||||||
Priority: | --- | Keywords: | feature, patch, patch-ready | ||||||||||||||||||||||||||||
Version: | Latest | ||||||||||||||||||||||||||||||
Hardware: | Any | ||||||||||||||||||||||||||||||
OS: | Any | ||||||||||||||||||||||||||||||
Attachments: |
|
Description
Dušan Vejnovič
2015-09-13 16:29:55 UTC
Created attachment 160988 [details]
poudriere build log for devel/nexus-oss
Created attachment 160989 [details]
new groups
Created attachment 160990 [details]
new users
Created attachment 164633 [details]
shar file for devel/nexus-oss
- removed nexus user and group
- added www user and group
- removed iconv from USES
- added iconv dependency to LIB_DEPENDS
- optimized re-inplace command in post-patch section
Created attachment 164634 [details]
poudriere build log for devel/nexus-oss
Created attachment 171815 [details]
shar file for devel/nexus-oss
Upgrade to 2.13.0
We need Nexus in the Ports tree too. Based on Dušan's great work, I have created an improved port in several ways: * Reuse nexus user because it is not a general-purpose web server like Apache, Jetty, Tomcat, etc. * DATADIR is now cleanly, according to the Porter's Handbook, /usr/local/share/java/nexus2 * Portname is nexus2(-oss) because there is Nexus 3 which is a new and different product * Clean separation of work, log and run in /var/nexus2, /var/log/nexus2, /var/run/nexu2 * All config happens in /usr/local/etc/nexus2 * JSW stuff removed from DATADIR as it is completely outdated and available in the Ports tree anyway * Wrapper is directly started from rc script, avoiding the need for another shell script * Updated version to 2.14.0-01 See attached patches for /usr/ports/{UIDs,GIDS} and shar file. Created attachment 175265 [details]
SHAR file for nexus2-oss
Created attachment 175266 [details]
Patch for /usr/ports/GIDs
Created attachment 175267 [details]
Patch for /usr/ports/UIDs
Port is also available on GitHub: https://github.com/michael-o/freebsd-ports/tree/master/devel/nexus2-oss portlint and rclint are also happy, both constantly applied during development. Created attachment 175269 [details] SHAR file for nexus2-oss Updated archive: Nexus failed with "WARNING: Couldn't flush user prefs: java.util.prefs.BackingStoreException: Couldn't get file lock." No writable home exists for this prefs file. User prefs have been redirected to %%WORKDIR%% References: http://stackoverflow.com/q/2027566/696632 and http://www.allaboutbalance.com/articles/disableprefs/ Anyone willing to take a look? (In reply to Michael Osipov from comment #14) Currently I'm testing nexus2-oss port via 'poudriere testport'. If all build logs are fine, I'll commit it into the ports tree as soon as I get my mentor's approval. (In reply to Michael Osipov from comment #7) Thank for your improvements. But I have some questions: - who will be maintainer - why not used existing GID (www) and UID (www) because nexus is HTTP server based on jetty Bye, Dušan. (In reply to Carlos J. Puga Medina from comment #15) Perfect, thank you. Let me know if something isn't right. (In reply to Dušan Vejnovič from comment #16) > But I have some questions: > - who will be maintainer I don't mind being it. I have conversations with the devs once in a while and am a Maven PMC member for quite sometime, moreover a happy FreeBSD user. > - why not used existing GID (www) and UID (www) because nexus is HTTP server based on jetty It's not based on Jetty, it simply uses Jetty and Nexus isn't just a webservr. Jetty is an implementation detail, it could be also Tomcat, Undertow or some other servlet container. It is a complete application, more specifically a database for binary artifacts with an extended permissions concept which happens to serve via HTTP. Simply treat is as an opaque application. I always follow least priviledge principle, Nexus does not need to have access to Apache's file, so neither does Apache has to. (In reply to Michael Osipov from comment #17) devel/nexus2-oss: All builds are fine on 9.3/ia, 10.2/ia and 10.3/ia. (In reply to Carlos J. Puga Medina from comment #19) Perfect! I have this already in production on 9.3-STABLE i386 and tested on 10.3-RELEASE amd64 and 11.0-STABLE i386. Created attachment 176746 [details]
nexus-oss.shar
devel/nexus-oss:
All builds are fine on 9.3/ia, 10.2/ia and 10.3/ia.
(In reply to Carlos J. Puga Medina from comment #21) Are you testing both shars? The one you have attached/linked is outdated. (In reply to Michael Osipov from comment #22) Ok, I changed the bug summary to avoid further confusion. Approved if you fix the spaces -> tab issue portlint picks up. Created attachment 176914 [details]
SHAR file for nexus2-oss
New shar file:
* Fixed space => tab in Makefile (portlint message)
* Sorted files with "find devel/nexus2-oss | sort"
* Removed README.md which should only be part of my Git repo
@Carlos An extra pass for final QA (poudrier:archs/versions, options, portlint) would be prudent Comment on attachment 176914 [details]
SHAR file for nexus2-oss
Mentor approval
(In reply to Kubilay Kocak from comment #26) portlint -AC output: WARN: Makefile: possible use of absolute pathname "/var/run/${PORTNAME}". WARN: Makefile: possible use of absolute pathname "/var/log/${PORTNAME}". WARN: Makefile: possible use of absolute pathname "/var/${PORTNAME}". WARN: /usr/local/poudriere/ports/default/devel/nexus2-oss/distinfo: [1]: TIMESTAMP is over 30 days old 0 fatal errors and 4 warnings found. poudriere testport -j 93x32 -o devel/nexus2-oss [OK] poudriere testport -j 93x64 -o devel/nexus2-oss [OK] poudriere testport -j 102x32 -o devel/nexus2-oss [OK] poudriere testport -j 102x64 -o devel/nexus2-oss [OK] poudriere testport -j 103x32 -o devel/nexus2-oss [OK] poudriere testport -j 103x64 -o devel/nexus2-oss [OK] (In reply to Carlos J. Puga Medina from comment #28) Unfortunately, I haven't found any predefined variables to avoid those three warnings. Hopefully they are acceptable. (In reply to Michael Osipov from comment #29) It's OK! But you should remove all directories from devel/nexus2-oss/files/* and create a new patch for logback.properties (In reply to Carlos J. Puga Medina from comment #30) Forget my previous comment. It's ready to be committed :) (In reply to Carlos J. Puga Medina from comment #30) I actually did that on purpose to denote that this is not going to conf, but is nested in the JAR which has to be updated with unzip/zip. A commit references this bug: Author: cpm Date: Sat Nov 12 15:31:15 UTC 2016 New revision: 425961 URL: https://svnweb.freebsd.org/changeset/ports/425961 Log: [NEW PORT] devel/nexus2-oss: Repository management software Nexus Repository Manager OSS provides you with an essential level of control over the external repositories you use and the internal repositories you create. It provides infrastructure and services for organizations that use repository managers to obtain and deliver software. If you create software libraries or applications for your end users, you can use Nexus Repository Manager OSS to distribute your software. If your software depends on open source software components, you can cache software components from remote repositories. Nexus Repository Manager OSS features: - Hosting repositories - Proxy remote repositories - Repository groups - Numerous repository formats - Hosting project websites - Fine-grained security model - Flexible LDAP integration - Component search - Scheduled rasks - REST services - Integration with m2eclipse WWW: https://www.sonatype.com/nexus-repository-oss PR: 203074 Submitted by: Dusan Vejnovic <freebsd@dussan.org>, Michael Osipov <1983-01-06@gmx.net> (maintainer) Reviewed by: feld, junovitch, koobs (mentors) Approved by: feld, junovitch, koobs (mentors) Changes: head/GIDs head/UIDs head/devel/Makefile head/devel/nexus2-oss/ head/devel/nexus2-oss/Makefile head/devel/nexus2-oss/distinfo head/devel/nexus2-oss/files/ head/devel/nexus2-oss/files/nexus/ head/devel/nexus2-oss/files/nexus/WEB-INF/ head/devel/nexus2-oss/files/nexus/WEB-INF/lib/ head/devel/nexus2-oss/files/nexus/WEB-INF/lib/nexus-core.jar/ head/devel/nexus2-oss/files/nexus/WEB-INF/lib/nexus-core.jar/META-INF/ head/devel/nexus2-oss/files/nexus/WEB-INF/lib/nexus-core.jar/META-INF/log/ head/devel/nexus2-oss/files/nexus/WEB-INF/lib/nexus-core.jar/META-INF/log/logback.properties head/devel/nexus2-oss/files/nexus2.in head/devel/nexus2-oss/files/patch-conf_jetty-requestlog.xml head/devel/nexus2-oss/files/patch-conf_logback-access.xml head/devel/nexus2-oss/files/patch-conf_logback.xml head/devel/nexus2-oss/files/patch-conf_nexus.properties head/devel/nexus2-oss/files/patch-conf_wrapper.conf head/devel/nexus2-oss/files/pkg-message.in head/devel/nexus2-oss/pkg-descr head/devel/nexus2-oss/pkg-plist (In reply to Michael Osipov from comment #32) Committed! Thanks for your contribution (In reply to Carlos J. Puga Medina from comment #34) Thank you so much for reviewing, testing and finally committing. |