diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9b53975 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +ushare-1.1a.tar.bz2 diff --git a/101-ushare-upnp-build-fix.patch b/101-ushare-upnp-build-fix.patch new file mode 100644 index 0000000..f37fe72 --- /dev/null +++ b/101-ushare-upnp-build-fix.patch @@ -0,0 +1,158 @@ +Source: https://dev.openwrt.org/raw-attachment/ticket/8296/101-ushare-upnp-build-fix.patch + +diff -wbBur ushare-1.1a/src/http.c ushare-1.1a.my/src/http.c +--- ushare-1.1a/src/http.c 2007-12-09 13:03:36.000000000 +0000 ++++ ushare-1.1a.my/src/http.c 2010-10-29 11:13:07.000000000 +0000 +@@ -77,8 +77,7 @@ + info->content_type = ixmlCloneDOMString (content_type); + } + +-static int +-http_get_info (const char *filename, struct File_Info *info) ++int http_get_info (const char *filename, struct File_Info *info) + { + extern struct ushare_t *ut; + struct upnp_entry_t *entry = NULL; +@@ -197,8 +196,7 @@ + return ((UpnpWebFileHandle) file); + } + +-static UpnpWebFileHandle +-http_open (const char *filename, enum UpnpOpenFileMode mode) ++UpnpWebFileHandle http_open (const char *filename, enum UpnpOpenFileMode mode) + { + extern struct ushare_t *ut; + struct upnp_entry_t *entry = NULL; +@@ -251,8 +249,7 @@ + return ((UpnpWebFileHandle) file); + } + +-static int +-http_read (UpnpWebFileHandle fh, char *buf, size_t buflen) ++int http_read (UpnpWebFileHandle fh, char *buf, size_t buflen) + { + struct web_file_t *file = (struct web_file_t *) fh; + ssize_t len = -1; +@@ -286,8 +283,7 @@ + return len; + } + +-static int +-http_write (UpnpWebFileHandle fh __attribute__((unused)), ++int http_write (UpnpWebFileHandle fh __attribute__((unused)), + char *buf __attribute__((unused)), + size_t buflen __attribute__((unused))) + { +@@ -296,8 +292,7 @@ + return 0; + } + +-static int +-http_seek (UpnpWebFileHandle fh, off_t offset, int origin) ++int http_seek (UpnpWebFileHandle fh, off_t offset, int origin) + { + struct web_file_t *file = (struct web_file_t *) fh; + off_t newpos = -1; +@@ -371,8 +366,7 @@ + return 0; + } + +-static int +-http_close (UpnpWebFileHandle fh) ++int http_close (UpnpWebFileHandle fh) + { + struct web_file_t *file = (struct web_file_t *) fh; + +@@ -402,13 +396,3 @@ + + return 0; + } +- +-struct UpnpVirtualDirCallbacks virtual_dir_callbacks = +- { +- http_get_info, +- http_open, +- http_read, +- http_write, +- http_seek, +- http_close +- }; +diff -wbBur ushare-1.1a/src/http.h ushare-1.1a.my/src/http.h +--- ushare-1.1a/src/http.h 2007-12-09 13:03:36.000000000 +0000 ++++ ushare-1.1a.my/src/http.h 2010-10-29 11:13:11.000000000 +0000 +@@ -25,6 +25,13 @@ + #include + #include + +-struct UpnpVirtualDirCallbacks virtual_dir_callbacks; ++int http_close (UpnpWebFileHandle fh); ++int http_write (UpnpWebFileHandle fh __attribute__((unused)), ++ char *buf __attribute__((unused)), ++ size_t buflen __attribute__((unused))); ++int http_seek (UpnpWebFileHandle fh, off_t offset, int origin); ++UpnpWebFileHandle http_open (const char *filename, enum UpnpOpenFileMode mode); ++int http_read (UpnpWebFileHandle fh, char *buf, size_t buflen); ++int http_get_info (const char *filename, struct File_Info *info); + + #endif /* _HTTP_H_ */ +diff -wbBur ushare-1.1a/src/ushare.c ushare-1.1a.my/src/ushare.c +--- ushare-1.1a/src/ushare.c 2007-12-09 13:03:36.000000000 +0000 ++++ ushare-1.1a.my/src/ushare.c 2010-10-29 11:17:45.000000000 +0000 +@@ -188,7 +188,7 @@ + if (strcmp (request->DevUDN + 5, ut->udn)) + return; + +- ip = request->CtrlPtIPAddr.s_addr; ++ ip = (*(struct sockaddr_in*)&request->CtrlPtIPAddr).sin_addr.s_addr; + ip = ntohl (ip); + sprintf (val, "%d.%d.%d.%d", + (ip >> 24) & 0xFF, (ip >> 16) & 0xFF, (ip >> 8) & 0xFF, ip & 0xFF); +@@ -348,7 +348,47 @@ + + UpnpEnableWebserver (TRUE); + +- res = UpnpSetVirtualDirCallbacks (&virtual_dir_callbacks); ++ res = UpnpVirtualDir_set_WriteCallback(http_write); ++ if (res != UPNP_E_SUCCESS) ++ { ++ log_error (_("Cannot set virtual directory callbacks\n")); ++ free (description); ++ return -1; ++ } ++ ++ res = UpnpVirtualDir_set_GetInfoCallback(http_get_info); ++ if (res != UPNP_E_SUCCESS) ++ { ++ log_error (_("Cannot set virtual directory callbacks\n")); ++ free (description); ++ return -1; ++ } ++ ++ res = UpnpVirtualDir_set_ReadCallback(http_read); ++ if (res != UPNP_E_SUCCESS) ++ { ++ log_error (_("Cannot set virtual directory callbacks\n")); ++ free (description); ++ return -1; ++ } ++ ++ res = UpnpVirtualDir_set_OpenCallback(http_open); ++ if (res != UPNP_E_SUCCESS) ++ { ++ log_error (_("Cannot set virtual directory callbacks\n")); ++ free (description); ++ return -1; ++ } ++ ++ res = UpnpVirtualDir_set_SeekCallback(http_seek); ++ if (res != UPNP_E_SUCCESS) ++ { ++ log_error (_("Cannot set virtual directory callbacks\n")); ++ free (description); ++ return -1; ++ } ++ ++ res = UpnpVirtualDir_set_CloseCallback(http_close); + if (res != UPNP_E_SUCCESS) + { + log_error (_("Cannot set virtual directory callbacks\n")); diff --git a/dead.package b/dead.package deleted file mode 100644 index 0f98991..0000000 --- a/dead.package +++ /dev/null @@ -1 +0,0 @@ -Package is retired diff --git a/sources b/sources new file mode 100644 index 0000000..a19f06a --- /dev/null +++ b/sources @@ -0,0 +1 @@ +5bbcdbf1ff85a9710fa3d4e82ccaa251 ushare-1.1a.tar.bz2 diff --git a/ushare-conf.patch b/ushare-conf.patch new file mode 100644 index 0000000..2a8e1cc --- /dev/null +++ b/ushare-conf.patch @@ -0,0 +1,22 @@ +--- ushare-1.1a/scripts/ushare.conf 2007-12-09 14:03:36.000000000 +0100 ++++ ushare-1.1a/scripts/ushare.conf.new 2008-03-09 09:53:12.000000000 +0100 +@@ -31,15 +31,15 @@ + USHARE_OVERRIDE_ICONV_ERR= + + # Enable Web interface (yes/no) +-ENABLE_WEB= ++USHARE_ENABLE_WEB= + + # Enable Telnet control interface (yes/no) +-ENABLE_TELNET= ++USHARE_ENABLE_TELNET= + + # Use XboX 360 compatibility mode (yes/no) +-ENABLE_XBOX= ++USHARE_ENABLE_XBOX= + + # Use DLNA profile (yes/no) + # This is needed for PlayStation3 to work (among other devices) +-ENABLE_DLNA= ++USHARE_ENABLE_DLNA= + diff --git a/ushare-error.patch b/ushare-error.patch new file mode 100644 index 0000000..211ab24 --- /dev/null +++ b/ushare-error.patch @@ -0,0 +1,11 @@ +--- ushare-1.1a/src/ushare.c 2007-12-09 14:03:36.000000000 +0100 ++++ ushare-1.1a/src/ushare.c.new 2008-03-09 09:58:06.000000000 +0100 +@@ -424,8 +424,6 @@ + if ((itf->ifa_flags & IFF_UP) + && !strncmp (itf->ifa_name, interface, IFNAMSIZ)) + { +- log_error (_("Interface %s is down.\n"), interface); +- log_error (_("Recheck uShare's configuration and try again !\n")); + freeifaddrs (itflist); + return true; + } diff --git a/ushare.init b/ushare.init new file mode 100644 index 0000000..55b55b5 --- /dev/null +++ b/ushare.init @@ -0,0 +1,80 @@ +#!/bin/sh +# +# ushare This shell script takes care of starting and stopping ushare. +# +# chkconfig: - 75 25 +# description: uShare UPnP A/V Media Server. +# + +# Source function library. +. /etc/rc.d/init.d/functions + +# Source networking configuration. +. /etc/sysconfig/network + +# Check that networking is up. +[ ${NETWORKING} = "no" ] && exit 0 + +OPTIONS="" +prog=ushare +DESC="UPnP A/V Media Server" + +[ -r "/etc/ushare.conf" ] && . /etc/ushare.conf +# abort if no shared directory is defined +[ -z "$USHARE_DIR" ] && exit 0 + + +start() { + echo -n $"Starting $prog: " + daemon --user ushare $prog -d -D + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog +} + +stop() { + echo -n $"Stopping $prog: " + killproc $prog + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog +} + +reload() { + echo -n $"Reloading $prog: " + killproc $prog -HUP + RETVAL=$? + echo +} + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + status) + status $prog + RETVAL=$? + ;; + restart) + stop + start + ;; + condrestart) + if [ -f /var/lock/subsys/$prog ]; then + stop + start + fi + ;; + reload) + reload + ;; + *) + echo $"Usage: $prog {start|stop|restart|condrestart|reload|status" + exit 1 +esac + +exit $RETVAL diff --git a/ushare.spec b/ushare.spec new file mode 100644 index 0000000..8d59d34 --- /dev/null +++ b/ushare.spec @@ -0,0 +1,175 @@ +Summary: UPnP (TM) A/V & DLNA Media Server +Name: ushare +Version: 1.1a +Release: 11%{?dist} +License: LGPLv2+ +Group: Applications/Multimedia +URL: http://ushare.geexbox.org/ + +Source: http://ushare.geexbox.org/releases/%{name}-%{version}.tar.bz2 +Source1:ushare.init +Patch0: ushare-conf.patch +Patch1: ushare-error.patch +Patch2: 101-ushare-upnp-build-fix.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +BuildRequires: libupnp-devel, pkgconfig +Requires: /usr/sbin/alternatives +Requires(pre): fedora-usermgmt +Requires(post): /sbin/chkconfig, /usr/sbin/alternatives +Requires(preun): /sbin/service, /sbin/chkconfig, /usr/sbin/alternatives +Requires(postun): /sbin/service + +%description +uShare is a UPnP (TM) A/V & DLNA Media Server. It implements the server +component that provides UPnP media devices with information on +available multimedia files. uShare uses the built-in http server +of libupnp to stream the files to clients. + +%prep +%setup -q +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +iconv -f ISO_8859-1 -t UTF-8 AUTHORS --output AUTHORS.utf8 +cp -af AUTHORS.utf8 AUTHORS + +%build +export CFLAGS="$RPM_OPT_FLAGS" +./configure --prefix=%{_prefix} --localedir=%{_datadir}/locale --sysconfdir=%{_sysconfdir} --disable-dlna --enable-debug +make %{?_smp_mflags} + +%install +rm -rf %{buildroot} +%makeinstall DESTDIR=%{buildroot} +%{__rm} -rf %{buildroot}%{_sysconfdir}/init.d +%{__install} -m 0755 -D %{SOURCE1} %{buildroot}%{_initrddir}/ushare +%{__mkdir_p} %{buildroot}%{_var}/lib/ushare +%{__mv} %{buildroot}%{_bindir}/ushare %{buildroot}%{_bindir}/ushare-fedora +%find_lang %{name} + +%clean +rm -rf %{buildroot} + +%pre +%{_sbindir}/fedora-useradd 21 -s /sbin/nologin -M -r -d %{_var}/lib/ushare \ + -c "ushare service account" ushare &>/dev/null || : + +%post +/sbin/chkconfig --add ushare +alternatives --install %{_bindir}/ushare ushare %{_bindir}/ushare-fedora 10 + +%preun +if [ $1 -eq 0 ]; then + /sbin/service ushare stop &>/dev/null || : + /sbin/chkconfig --del ushare +alternatives --remove ushare %{_bindir}/ushare-fedora +fi + +%postun +if [ $1 -ge 1 ]; then + /sbin/service ushare condrestart &>/dev/null || : +fi + +%files -f %{name}.lang +%defattr(-,root,root,-) +%doc AUTHORS ChangeLog COPYING NEWS README +%{_bindir}/ushare-fedora +%config(noreplace) %{_sysconfdir}/ushare.conf +%{_initrddir}/ushare +%attr(770,ushare,ushare) %dir %{_var}/lib/ushare/ + +%changelog +* Wed Nov 23 2011 Matěj Cepl - 1.1a-11 +- Fix Summary (fix #593471) + +* Sat Jul 30 2011 Matěj Cepl - 1.1a-9 +- Rebuilt against new libraries. + +* Wed Jul 06 2011 Adam Jackson 1.1a-8 +- 101-ushare-upnp-build-fix.patch: Fix build against newer libupnp (#715648) + +* Mon Feb 07 2011 Fedora Release Engineering - 1.1a-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Sun Jul 26 2009 Fedora Release Engineering - 1.1a-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Feb 25 2009 Fedora Release Engineering - 1.1a-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Thu Dec 18 2008 Dave Jones +- Don't trash the ircd pid file when shutting down ushare. + +* Sun Mar 09 2008 Eric Tanguy - 1.1a-4 +- BZ 436605 & 436607 + +* Fri Jan 25 2008 Eric Tanguy - 1.1a-3 +- Correct some spec error + +* Tue Dec 25 2007 Eric Tanguy - 1.1a-2 +- Introduce use of alternatives + +* Thu Dec 06 2007 Eric Tanguy - 1.1a-1 +- Update to 1.1a + +* Wed Dec 05 2007 Eric Tanguy - 1.1-1 +- Update to 1.1 + +* Sun Nov 18 2007 Eric Tanguy - 1.0-4 +- Rebuild for new libupnp. + +* Wed Aug 29 2007 Fedora Release Engineering - 1.0-2 +- Rebuild for selinux ppc32 issue. + +* Fri Jul 06 2007 Eric Tanguy - 1.0-1 +- Update to 1.0 + +* Tue Jun 26 2007 Eric Tanguy - 0.9.10-4 +- Rebuild + +* Sat May 05 2007 Eric Tanguy - 0.9.10-3 +- Rebuild for libupnp-1.6.0 + +* Sat May 05 2007 Eric Tanguy - 0.9.10-2 +- Rebuild + +* Mon Feb 26 2007 Eric Tanguy - 0.9.10-1 +- Update to 0.9.10 + +* Sun Feb 25 2007 Eric Tanguy - 0.9.9-1 +- Update to 0.9.9 + +* Sat Feb 17 2007 Eric Tanguy - 0.9.8-2 +- Rebuild for libupnp 1.4.2 + +* Wed Dec 13 2006 Eric Tanguy - 0.9.8-1 +- Update to 0.9.8 + +* Thu Jun 29 2006 Eric Tanguy - 0.9.7-2 +- Add pkgconfig to buildrequires + +* Sun Mar 12 2006 Eric Tanguy - 0.9.7-1 +- Update to 0.9.7 + +* Tue Feb 14 2006 Eric Tanguy - 0.9.6-1 +- Update to 0.9.6 + +* Tue Feb 14 2006 Eric Tanguy - 0.9.5-6 +- Rebuild for FC5 + +* Fri Feb 10 2006 Eric Tanguy - 0.9.5-5 +- Rebuild for FC5 + +* Tue Dec 27 2005 Eric Tanguy 0.9.5-4 +- Use %%find_lang macro instead of %%{_datadir}/locale/* + +* Tue Dec 27 2005 Eric Tanguy 0.9.5-3 +- Drop "Requires: libupnp" +- replace %%{_sysconfdir}/ushare.conf by %%config(noreplace) %%{_sysconfdir}/ushare.conf + +* Tue Dec 27 2005 Eric Tanguy 0.9.5-2 +- add patch for buffer + +* Tue Dec 27 2005 Eric Tanguy 0.9.5-1 +- First build