...
 
Commits (10)
This package uses dpatch (in a fairly standard/straightforward way) to
manage all modifications to the upstrean source. Please see
/usr/share/doc/dpatch/README.source.gz
for further instructions.
-- Yavor Doganov <yavor@gnu.org>, Tue, 8 Jun 2010 17:23:38 +0300
wrapperfactory.app (0.1.0-5) UNRELEASED; urgency=medium
* debian/compat: Bump to 11.
* debian/rules: Rewrite for modern dh. Don't include dpatch.make.
Don't generate/install the .xpm icon. Enable all hardening.
* debian/control: Run wrap-and-sort -ast.
(Build-Depends): Remove dpatch and imagemagick. Bump debhelper to
>= 11. Require gnustep-make >= 2.7.0-3 for noopt support.
(Depends): Remove ${gnustep:Depends}; obsolete.
* debian/source/format: Set to 3.0 (quilt).
* debian/patches/00list: Rename as...
* debian/patches/series: ...
* debian/patches/05_objdir.dpatch: Delete, no longer necessary.
* debian/patches/10_libGSWrapper_libobjc.dpatch: Rename as...
* debian/patches/link-libs.patch: ...and quiltify.
* debian/patches/make-v2-strict.patch: New; fix FTBFS with gnustep-make
in strict v2 mode, adapt code to a v2 environment (Closes: #897620).
* debian/README.source: Delete; useless.
* debian/menu: Delete as per policy requirement.
* debian/manpages: New file.
-- Yavor Doganov <yavor@gnu.org> Thu, 10 May 2018 09:01:30 +0300
wrapperfactory.app (0.1.0-4) unstable; urgency=low
* debian/compat: Set to 7.
......
......@@ -2,20 +2,22 @@ Source: wrapperfactory.app
Section: gnustep
Priority: optional
Maintainer: Debian GNUstep maintainers <pkg-gnustep-maintainers@lists.alioth.debian.org>
Uploaders: Yavor Doganov <yavor@gnu.org>
Build-Depends: debhelper (>= 7),
dpatch,
libgnustep-gui-dev,
imagemagick
Uploaders:
Yavor Doganov <yavor@gnu.org>,
Build-Depends:
debhelper (>= 11),
gnustep-make (>= 2.7.0-3),
libgnustep-gui-dev,
Standards-Version: 3.8.4
Vcs-Arch: http://arch.debian.org/arch/pkg-gnustep/gnustep/wrapperfactory-app--debian--1.0
Package: wrapperfactory.app
Architecture: any
Depends: ${shlibs:Depends},
${misc:Depends},
${gnustep:Depends}
Recommends: gworkspace.app
Depends:
${misc:Depends},
${shlibs:Depends},
Recommends:
gworkspace.app,
Description: Application wrappers configuration tool for GNUstep
This provides an easy way to create GNUstep app-wrappers of non-GNUstep
applications. It is the most useful in conjunction with GWorkspace
......
debian/WrapperFactory.1
?package(wrapperfactory.app):needs="X11" \
section="Applications/System/Administration" \
title="WrapperFactory" command="/usr/bin/WrapperFactory" \
icon="/usr/share/pixmaps/WrapperFactory.xpm" \
longtitle="Graphical editor for app wrappers for GNUstep"
05_objdir
10_libGSWrapper_libobjc
#! /bin/sh /usr/share/dpatch/dpatch-run
## 05_objdir.dpatch by Yavor Doganov <yavor@gnu.org>
##
## DP: Objects' directories are always `obj' as of GNUstep Make 2.0.
@DPATCH@
diff -urNad wrapperfactory.app-0.1.0~/Directories.make wrapperfactory.app-0.1.0/Directories.make
--- wrapperfactory.app-0.1.0~/Directories.make 2004-08-09 19:30:51.000000000 +0300
+++ wrapperfactory.app-0.1.0/Directories.make 2007-11-18 13:13:33.000000000 +0200
@@ -19,13 +19,8 @@
# $Id: Directories.make 103 2004-08-09 16:30:51Z rherzog $
# $HeadURL: file:///home/rherzog/Subversion/GNUstep/GSWrapper/tags/release-0.1.0/Directories.make $
-ifeq ($(debug),yes)
-APP_DIR=WrapperFactory.debug
-OBJ_BASE_DIR=shared_debug_obj
-else
APP_DIR=WrapperFactory.app
-OBJ_BASE_DIR=shared_obj
-endif
+OBJ_BASE_DIR=obj
ARCH_DIR=$(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)/$(LIBRARY_COMBO)
ifneq ($(GNUSTEP_FLATTENED),yes)
#! /bin/sh /usr/share/dpatch/dpatch-run
## 10_libGSWrapper_libobjc.dpatch by Yavor Doganov <yavor@gnu.org>
##
## DP: Link with libobjc and use standard GNUstep Make variables.
Description: Link with libobjc and use standard GNUstep Make variables.
Author: Yavor Doganov <yavor@gnu.org>
Forwarded: no
Last-Update: 2018-05-10
---
@DPATCH@
diff -urNad wrapperfactory.app-0.1.0~/libGSWrapper/GNUmakefile wrapperfactory.app-0.1.0/libGSWrapper/GNUmakefile
--- wrapperfactory.app-0.1.0~/libGSWrapper/GNUmakefile 2004-08-09 16:30:51.000000000 +0000
+++ wrapperfactory.app-0.1.0/libGSWrapper/GNUmakefile 2007-11-25 11:13:14.000000000 +0000
--- wrapperfactory.app.orig/libGSWrapper/GNUmakefile
+++ wrapperfactory.app/libGSWrapper/GNUmakefile
@@ -29,7 +29,7 @@
NSApplication+SuppressAppIcon.m \
NSApplication+AppName.m \
-libGSWrapper_LIBRARIES_DEPEND_UPON = -lgnustep-base -lgnustep-gui
+libGSWrapper_LIBRARIES_DEPEND_UPON = $(FND_LIBS) $(GUI_LIBS) $(OBJC_LIBS)
+libGSWrapper_LIBRARIES_DEPEND_UPON = $(GUI_LIBS) $(FND_LIBS) $(OBJC_LIBS)
ifeq ($(GSWrapper_Development),yes)
include ../GNUmakefile.development
Description: Fix FTBFS with gnustep-make in strict v2 mode.
Also adapt the app to the removal of the 1.x compatibility mode: some
variables are obsolete and are no longer defined while normally
nothing is exported in the environment.
Debian-Bug: https://bugs.debian.org/897620
Author: Yavor Doganov <yavor@gnu.org>
Forwarded: no
Last-Update: 2018-05-10
---
--- wrapperfactory.app.orig/GNUmakefile
+++ wrapperfactory.app/GNUmakefile
@@ -19,15 +19,9 @@
include $(GNUSTEP_MAKEFILES)/common.make
-include Directories.make
-
-GNUSTEP_INSTALLATION_DIR = $(GNUSTEP_SYSTEM_ROOT)
-
PACKAGE_NAME=GNUstepWrapper
include Version
-GNUSTEP_INSTALLATION_DIR = $(GNUSTEP_SYSTEM_ROOT)
-
#$(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)/$(LIBRARY_COMBO)/GSWrapper_Launcher
SUBPROJECTS = libGSWrapper Launcher WrapperFactory
--- wrapperfactory.app.orig/Launcher/GNUmakefile
+++ wrapperfactory.app/Launcher/GNUmakefile
@@ -19,23 +19,19 @@
include $(GNUSTEP_MAKEFILES)/common.make
-include ../Directories.make
-
-GNUSTEP_INSTALLATION_DIR=$(GNUSTEP_SYSTEM_ROOT)
-
-OBJC_PROGRAM_NAME=GSWrapper_Launcher
+TOOL_NAME=GSWrapper_Launcher
GSWrapper_Launcher_OBJC_FILES=main.m
-GSWrapper_Launcher_OBJC_LIBS += -lGSWrapper -lgnustep-base -lgnustep-gui
+GSWrapper_Launcher_TOOL_LIBS += -lGSWrapper -lgnustep-base -lgnustep-gui
GSWrapper_Launcher_INCLUDE_DIRS += -I../libGSWrapper
-GSWrapper_Launcher_LIB_DIRS += -L../libGSWrapper/$(OBJ_DIR)
+GSWrapper_Launcher_LIB_DIRS += -L../libGSWrapper/obj
-GSWrapper_Launcher_COPY_INTO_LOCAL_BUNDLE = ../$(APP_DIR)/Resources/$(ARCH_DIR)
+GSWrapper_Launcher_COPY_INTO_DIR = \
+ ../WrapperFactory/WrapperFactory.app/Resources
-include GNUmakefile.preamble
ifeq ($(GSWrapper_Development),yes)
include ../GNUmakefile.development
endif
-include $(GNUSTEP_MAKEFILES)/objc.make
--include GNUmakefile.postamble
+include $(GNUSTEP_MAKEFILES)/tool.make
--- wrapperfactory.app.orig/WrapperFactory/GNUmakefile
+++ wrapperfactory.app/WrapperFactory/GNUmakefile
@@ -19,8 +19,6 @@
include $(GNUSTEP_MAKEFILES)/common.make
-include ../Directories.make
-
APP_NAME=WrapperFactory
WrapperFactory_OBJC_FILES = main.m \
@@ -50,7 +48,6 @@
include ../GNUmakefile.development
endif
include $(GNUSTEP_MAKEFILES)/application.make
--include GNUmakefile.postamble
ifeq ($(GSWrapper_Development),yes)
include GNUmakefile.development.post
endif
--- wrapperfactory.app.orig/libGSWrapper/GNUmakefile
+++ wrapperfactory.app/libGSWrapper/GNUmakefile
@@ -19,9 +19,6 @@
include $(GNUSTEP_MAKEFILES)/common.make
-
-GNUSTEP_INSTALLATION_DIR=$(GNUSTEP_SYSTEM_ROOT)
-
LIBRARY_NAME=libGSWrapper
libGSWrapper_OBJC_FILES = WrapperDelegate.m \
--- wrapperfactory.app.orig/WrapperFactory/ServicesProvider.m
+++ wrapperfactory.app/WrapperFactory/ServicesProvider.m
@@ -35,12 +35,13 @@
userData: (NSString *)userData
error: (NSString **)error
{
+ NSUserDefaults *defs = [NSUserDefaults standardUserDefaults];
NSDocumentController *documentController = [NSDocumentController sharedDocumentController];
NSArray *files = [pboard propertyListForType: NSFilenamesPboardType];
NSString *file;
NSString *appName;
WrapperDocument *doc;
- NSString *userRoot = [[[NSProcessInfo processInfo] environment] objectForKey: @"GNUSTEP_USER_ROOT"];
+ NSString *userRoot = [defs objectForKey: @"GNUSTEP_USER_DIR_APPS"];
int i;
int count = [files count];
BOOL shouldCreate = [documentController shouldCreateUI];
@@ -56,8 +57,8 @@
appName = [NSString stringWithFormat: @"%@.app", [file lastPathComponent]];
[doc setName: appName];
appName = [NSString pathWithComponents: [NSArray arrayWithObjects:
+ NSHomeDirectory(),
userRoot,
- @"Applications",
appName,
nil]];
--- wrapperfactory.app.orig/WrapperFactory/WrapperDocument.m
+++ wrapperfactory.app/WrapperFactory/WrapperDocument.m
@@ -80,6 +80,39 @@
@end
+/* Obtain a variable's value with gnustep-config. Assumes that
+ * gnustep-config is in PATH which should be the case for all
+ * installations. */
+static NSString *
+getVar(NSString *var)
+{
+ NSPipe *pipe = [NSPipe pipe];
+ NSFileHandle *handle = [pipe fileHandleForReading];
+ NSTask *task = [NSTask new];
+ NSString *output, *value;
+
+ [task setLaunchPath: @"gnustep-config"];
+ [task setArguments: [NSArray arrayWithObjects:
+ [NSString stringWithFormat: @"--variable=%@",
+ var], nil]];
+ [task setStandardOutput: pipe];
+ [task launch];
+ output = [[NSString alloc] initWithData: [handle readDataToEndOfFile]
+ encoding: NSUTF8StringEncoding];
+ value = [output stringByTrimmingCharactersInSet:
+ [NSCharacterSet newlineCharacterSet]];
+ [handle closeFile];
+
+ if ( [value isEqualToString: @""] || [task terminationStatus] != 0 )
+ [NSException raise: NSParseErrorException
+ format: @"Could not obtain the %@ variable", var];
+
+ RELEASE(task);
+ RELEASE(output);
+
+ return value;
+}
+
@implementation AppFileWrapper
- (void)dealloc
@@ -824,12 +857,15 @@
- (NSFileWrapper *)saveWrapper
{
-
- NSString *flattenedString = [[[NSProcessInfo processInfo] environment] objectForKey: @"GNUSTEP_FLATTENED"];
- BOOL flattened;
+ /* Try to obtain GNUSTEP_IS_FLATTENED from the environment, in
+ * case GNUSTEP_SH_EXPORT_ALL_VARIABLES is defined. Resort to the
+ * slower method if it's not exported. */
+ NSString *flattenedString = [[[NSProcessInfo processInfo] environment] objectForKey: @"GNUSTEP_IS_FLATTENED"];
+ BOOL flattened = NO;
if ( flattenedString == nil ) {
- NSLog(@"GNUSTEP_FLATTENED not set");
- flattened = NO;
+ flattenedString = getVar(@"GNUSTEP_IS_FLATTENED");
+ if ( [flattenedString isEqualToString: @""] )
+ NSLog(@"GNUSTEP_IS_FLATTENED not set");
}
else {
flattened = [flattenedString isEqualToString: @"yes"];
@@ -954,6 +990,13 @@
[environment objectForKey: @"LIBRARY_COMBO"],
nil];
+ if ( [exePathComponents count] < 3 )
+ exePathComponents = [NSArray arrayWithObjects:
+ getVar(@"GNUSTEP_HOST_CPU"),
+ getVar(@"GNUSTEP_HOST_OS"),
+ getVar(@"LIBRARY_COMBO"),
+ nil];
+
NSData *script;
if ( flattened ) {
script = nil;
link-libs.patch
make-v2-strict.patch
......@@ -2,84 +2,40 @@
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
include /usr/share/dpatch/dpatch.make
include /usr/share/GNUstep/debian/config.mk
export GNUSTEP_MAKEFILES := $(GS_MAKE_DIR)
d_app := $(CURDIR)/debian/wrapperfactory.app
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
# Make sure there are no undefined symbols and avoid unnecessary
# dependencies.
LDFLAGS := -Wl,-z,defs -Wl,--as-needed -Wl,-rpath,/usr/lib/wrapperfactory.app
export DEB_LDFLAGS_MAINT_APPEND := -Wl,--no-undefined -Wl,--as-needed \
-Wl,-rpath,/usr/lib/wrapperfactory.app
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
optim := debug=yes
endif
%:
dh $@
build: patch build-stamp
override_dh_auto_build:
dh_auto_build -- $(optim) messages=yes \
$(shell dpkg-buildflags --export=cmdline)
build-stamp:
dh_testdir
$(MAKE) $(optim) LDFLAGS="$(LDFLAGS)" messages=yes
convert WrapperFactory/Icons/WrapperFactory.tiff \
-resize 32x32 WrapperFactory.xpm
touch $@
clean: clean-patched unpatch
clean-patched:
dh_testdir
dh_testroot
$(MAKE) distclean
dh_clean build-stamp WrapperFactory.xpm
install: build
dh_testdir
dh_testroot
dh_prep
override_dh_auto_install:
# Install libGSWrapper as a private library.
$(MAKE) install DESTDIR=$(d_app) GNUSTEP_INSTALLATION_DOMAIN=SYSTEM \
GNUSTEP_SYSTEM_LIBRARIES=/usr/lib/wrapperfactory.app
dh_auto_install -- GNUSTEP_SYSTEM_LIBRARIES=/usr/lib/wrapperfactory.app
# Remove invalid .desktop file and install ours.
rm $(d_app)$(GNUSTEP_SYSTEM_APPS)/*.app/Resources/*.desktop
install -D -m 644 debian/WrapperFactory.desktop \
$(d_app)/usr/share/applications/WrapperFactory.desktop
# Install the XPM icon.
install -D -m 644 WrapperFactory.xpm \
$(d_app)/usr/share/pixmaps/WrapperFactory.xpm
# Remove the helper tool; it's in the app bundle.
rm $(d_app)/usr/bin/GSWrapper_Launcher
# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.
# Build architecture-dependent files here.
binary-arch: build install
dh_testdir
dh_testroot
dh_installchangelogs
dh_installdocs
dh_installmenu
dh_installman debian/WrapperFactory.1
ifeq ($(GS_USE_FHS),yes)
gsdh_gnustep
override_dh_link:
dh_installdirs usr/share/GNUstep/WrapperFactory.app
# Move the images only; the helper tool must be in Resources, and it's
# arch-dependent so we can't symlink the whole directory.
for i in $(d_app)$(GNUSTEP_SYSTEM_APPS)/WrapperFactory.app/Resources/*.tiff; do \
for i in $(d_app)$(GNUSTEP_SYSTEM_APPS)/*.app/Resources/*.tiff; do \
mv $$i $(d_app)/usr/share/GNUstep/WrapperFactory.app/ \
&& dh_link usr/share/GNUstep/WrapperFactory.app/`basename $$i` \
$(GNUSTEP_SYSTEM_APPS)/WrapperFactory.app/Resources/`basename $$i`; \
done
endif
dh_strip
dh_compress
dh_fixperms
dh_installdeb
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install
override_dh_makeshlibs:
# Avoid lintian warning for the private library.
dh_makeshlibs --noscripts